---
title: "Risikokonflikte und die Restrukturierung des Parteienwettbewerbs"
author: "Endre Borbáth and Swen Hutter"
date: "`r format(Sys.time(), '%d %B, %Y')`"
output:
  html_document:
    code_folding: hide
    df_print: paged
    theme: paper
    toc: yes
    toc_float:
      collapsed: false
---


# Setting up R

```{r, include = T, echo = T, message = F, include=FALSE}

rm(list = ls())
library(tidyverse)
library(dplyr)
library(ggplot2)
library(haven)
library(naniar)
# if (!require("MDScosa")) install_github("nenaoana/MDScosa")
library(MDScosa)
library(ggrepel)
library(RColorBrewer)
library(writexl)
library(readxl)
# library(tidyr)
library(readstata13)

set.seed(1991)

path <- "/Users/eborbath/Nextcloud/Papers/Blauer_Band/Empirical_analysis/"

fig_path <- paste0(path, "Feb_2023/final_figures/")

setwd(path)


```

# Figure 1

```{r, include = T, echo = T, message = F, warning=FALSE, fig.width=6.5, fig.height=10}

# issue_cat 15= enviro 19=covid
# dat <- read.csv(file=paste0(path, "Data/PolitBarometer/ZA2391_v13-0-0.dta")) 
dat_orig <- readstata13::read.dta13(paste0(path, "Data/PolitBarometer/ZA2391_v13-0-0.dta")) 

# unique <- dat_orig %>%
#   select(v33) %>%
#   group_by(v33) %>%
#   mutate(n=n()) %>%
#   select(v33, n) %>%
#   unique(.)
# 
# unique2 <- dat_orig %>%
#   select(v34) %>%
#   group_by(v34) %>%
#   mutate(n=n()) %>%
#   select(v34, n) %>%
#   unique(.) %>%
#   rename(v33=v34)
# 
# unique <- bind_rows(unique, unique2) %>%
#   group_by(v33) %>%
#   mutate(n=sum(n, na.rm=TRUE)) %>%
#   ungroup(.) %>%
#   unique(.) %>%
#   arrange(-n)

# from_GP <- read_excel(paste0(path, "Data/PolitBarometer/German_pol_most_imp_problem.xls")) %>%
#   select(-v33) %>%
#   rename(v33 = string) %>%
#   mutate(type=case_when(type=="Hartz_IV" ~ "Economic",
#                         type=="Pegida" ~ "Immigration",
#                         TRUE ~ type))
# 
# unique <- left_join(unique, from_GP)

# write_xlsx(unique, path=paste0(path, "Data/PolitBarometer/problem_strings.xlsx"))

### hand coded strings ###

strings <- read_excel(paste0(path, "Data/PolitBarometer/problem_strings_coded2.xlsx")) %>%
  select(v33, type) %>%
  na.omit()


dat <- dat_orig %>% 
  select(v33, v3, v4,V81)  %>% 
  mutate(v33=as.character(as_factor(v33))) %>%
  filter(!v33=="nicht erhoben")

dat <- left_join(dat, strings) %>% 
  mutate(covid=ifelse(type=="Covid-19", 1, 0),
         econ=ifelse(type=="Economic", 1, 0),
         environ=ifelse(type=="Environment", 1, 0),
         immig=ifelse(type=="Immigration", 1, 0),
         europe=ifelse(type=="Europe", 1, 0)) %>% 
  select(-type)

dat$month <- as.numeric(dat$v3)

dat$date <- zoo::as.yearmon(paste(dat$v4, dat$month), "%Y %m")

dat <- dat %>% 
  select(v33, v3, v4, covid, econ, environ, immig, europe, V81, date) %>%
  group_by(date) %>%
  mutate(totalsumweight=sum(V81, na.rm=TRUE)) %>%
  ungroup(.) %>%
  mutate(V81 = ifelse(totalsumweight==0, 1, V81)) %>% 
  select(-totalsumweight) %>% 
  group_by(date) %>%
  mutate(totalsumweight=sum(V81, na.rm=TRUE)) %>%
  ungroup(.) %>%
  mutate_at(vars(covid, econ, environ, immig, europe), ~.*V81) %>%
  group_by(date) %>%
  mutate_at(vars(covid, econ, environ, immig, europe), ~sum(., na.rm=TRUE)) %>%
  ungroup(.) %>% 
  select(date, covid, econ, environ, immig, europe, totalsumweight) %>%
  unique(.) %>%
  mutate_at(vars(covid, econ, environ, immig, europe), ~.*100/totalsumweight) %>% 
  mutate_at(vars(covid, econ, environ, immig, europe), ~ifelse(totalsumweight==0 & is.na(.), 0, .)) %>% 
  select(-totalsumweight) %>% 
  pivot_longer(., cols=c(covid, econ, environ, immig, europe), 
                    names_to="type",  values_to="value") %>% 
  mutate(type=case_when(type=="covid" ~ "Covid-19",
                        type=="econ" ~ "Wirtschaft", 
                        type=="environ" ~ "Umwelt",
                        type=="immig" ~ "Einwanderung", 
                        type=="europe" ~ "Europa",
                        TRUE ~ "")) %>% 
  mutate(type=factor(type, levels=c("Wirtschaft", "Einwanderung", "Europa", 
                                    "Umwelt", "Covid-19"))) %>% 
  mutate(issue_group2 = case_when(type == "Wirtschaft" ~ "Wirtschaftliche Konflikte",
                                  type %in% c("Einwanderung", "Europa") ~ "Globalisierungskonflikte",
                                  type %in% c("Umwelt", "Covid-19") ~ "Risikokonflikte")) %>% 
  mutate(issue_group2=factor(issue_group2, levels=c("Wirtschaftliche Konflikte", "Globalisierungskonflikte",
                                                    "Risikokonflikte")))
  

my.cols <- brewer.pal(6, "Set1")
my.cols[6] <- "#000000"
my.cols[3] <- "#FF7F00"
my.cols[5] <- "#4DAF4A"
my.cols <- my.cols[-2]

ggplot(dat, aes(x = date, y=value, linetype=type, color=type)) +
  geom_line() +
  facet_grid(~issue_group2) +
  # scale_color_manual(values=c("blue", "red")) +
  scale_linetype_manual(values=c("solid","solid", "dashed", "solid", "dashed")) +
  scale_color_manual(values = my.cols) +
  scale_x_continuous(breaks = scales::pretty_breaks(n = 10)) +
  scale_y_continuous(breaks = scales::pretty_breaks(n = 10)) +
  theme(legend.title=element_blank(),
        legend.position="bottom",
        legend.margin=margin(),
        axis.title.x=element_blank()) +
  labs(y = "Prozentsatz der Befragten (%)") +
  guides(color=guide_legend(nrow=2,byrow=TRUE),
         linetype=guide_legend(nrow=2,byrow=TRUE)) +
  theme_bw() +
  theme(legend.position="bottom",
       legend.title=element_blank(), 
       legend.key.width = unit(2, "cm"),
       axis.title.x = element_blank())

ggsave("f1_biggest_problem.png",
       path=fig_path,
       scale = 1.3,
       width=6,
       height=4,
       dpi = 400)

```


# prepare the gles dataset

```{r, include = T, echo = T, message = F, warning=FALSE, fig.width=6.5, fig.height=10}

data2013_17 <- readstata13::read.dta13(paste0(path, "Data/GLES/ZA6835_v1-0-0.dta")) 

data2021 <- readstata13::read.dta13(paste0(path, "Data/GLES/ZA7702_v1-0-0.dta")) 

#vorwahl2021 <- readstata13::read.dta13("ZA7700_v2-0-0.dta")
#nachwahl2021 <- readstata13::read.dta13("ZA7701_v1-0-0.dta")

#table(vorwahl2021$d21s)

#table(data2013_17$d31_i08)

d2013_17 <- data2013_17 %>% 
  select(year,sample,w_ipfges_2, d2, d1, d43, d5, d30, d34, v9aa, v13aa, v4, v132, v72a, v72b, v72c, v72d, v72f, v72g, 
         v23b, v85, v84b, v84c, v84d, v84e, v84f, v84g, v84h, v87b, v87c, v87d, v87e, v87f,
         v87g, v87h, v88, v79b, v79c, v79d, v79e, v79f, v79g, v79h, v80, v137f) %>% 
  rename(weight= w_ipfges_2, age=d2, gender=d1, income=d43, education=d5, occupation=d30, occwirt=d34, voteintention=v9aa,
         vote=v13aa, votedornot=v4, pol_interest=v132, issue_migrant=v72a, 
         issue_women= v72b, issue_economy=v72c, issue_inequal= v72d, 
         issue_referendum= v72f, issue_nuclear= v72g, demo= v23b, pos_envi= v85,
         envi_CDU= v84b, envi_CSU= v84c, envi_SPD= v84d, envi_FDP=v84e, envi_GRU=v84f, 
         envi_LINK=v84g, envi_AfD=v84h, pos_migran= v88, migran_CDU= v87b, migran_CSU= v87c, migran_SPD= v87d, migran_FDP=v87e, migran_GRU=v87f, 
         migran_LINK=v87g, migran_AfD=v87h, pos_tax= v80, tax_CDU= v79b, tax_CSU= v79c, tax_SPD= v79d, tax_FDP=v79e, tax_GRU=v79f, 
         tax_LINK=v79g, tax_AfD=v79h) |> 
  mutate(v137f=as.numeric(v137f),
         env_group=case_when(v137f==5 ~ 0,
                             v137f==9 ~ 1,
                             TRUE ~ as.numeric(NA))) |> 
  select(-v137f)

d2013_17$year <- as.numeric(d2013_17$year)
d2013_17$age <- as.numeric(d2013_17$age)


d2021 <- data2021 %>% 
  select(intyear, sample, w_ipfges, d2a, d1, d63, d7, d11, d16, q8aa, q114aa, q111, q1, q27a,
         q27b, q27c, q27d, q27e, q27h, q27j, q27k,
         q73b, q48, q47b, q47c, q47d, q47e, q47f, q47g, q47h, q39b, q39c,q39d,q39h,
         q39e, q39g, q39f, q40, q42b, q42c, q42d, q42e, q42h, q42g, q42f, 
         q43, q144c, q144f, q144e) %>% 
  rename(weight=w_ipfges, year=intyear, age=d2a, gender=d1, income=d63, education=d7, occupation=d11, occwirt=d16, voteintention=q8aa,
         vote=q114aa, votedornot=q111, pol_interest=q1, issue_migrant=q27a, 
         issue_women= q27b, issue_economy=q27c, issue_inequal= q27d, 
         issue_referendum= q27e, issue_fossil=q27h, issue_vaccin=q27j, issue_freedom= q27k, 
         demo= q73b, pos_envi= q48, envi_CDU= q47b, envi_CSU= q47c, envi_SPD= q47d, envi_FDP=q47e, envi_GRU=q47f, 
         envi_LINK=q47g, envi_AfD=q47h, pos_migran= q43, migran_CDU= q42b, migran_CSU= q42c, migran_SPD= q42d,
         migran_FDP=q42e, migran_GRU=q42f, migran_LINK=q42g, migran_AfD=q42h, pos_tax= q40, tax_CDU= q39b, tax_CSU= q39c,
         tax_SPD= q39d, tax_FDP=q39e, tax_GRU=q39f,tax_LINK=q39g, tax_AfD=q39h) |> 
  mutate(env_group=case_when(as.numeric(q144c)==5 ~ 1,
                             as.numeric(q144c)==8 ~ 0,
                             TRUE ~ as.numeric(NA)),
         vacc_group=case_when(as.numeric(q144f)==6 ~ 1,
                              as.numeric(q144f) == 9 ~ 0,
                              TRUE ~ as.numeric(NA)),
         covid_group=case_when(as.numeric(q144e) == 6 ~ 1,
                               as.numeric(q144e) == 9 ~ 0,
                               TRUE ~ as.numeric(NA))) |> 
  select(-q144c, -q144f, -q144e)

table(d2021$covid_group)

d2021$year <- as.numeric(d2021$year)
d2021$age <- as.numeric(d2021$age)

nd2021 <- d2021 %>% 
  mutate(age=year-age)  %>% 
  mutate(female=case_when(gender=="weiblich" ~ 1,
                          gender=="maennlich" ~ 0, 
                          TRUE ~ as.numeric(NA))) %>% 
  select(!gender) %>% 
  mutate(sample=case_when(
    sample %in% c("pre13") ~ "pre13",
    sample %in% c("post13") ~ "post13",
    sample %in% c("pre17") ~ "pre17",
    sample %in% c("post17") ~ "post17",
    sample %in% c("GLES Querschnitt 2021, Vorwahl") ~ "pre2021",
    sample %in% c("GLES Querschnitt 2021, Nachwahl") ~ "post2021")) %>% 
  mutate(sample=factor(sample, levels=c("pre13", "post13", "pre17", "post17", "pre2021", "post2021"))) %>% 
  mutate(income=case_when(
    income %in% c("keine Angabe", "keine Angabe") ~ "", 
    income %in% c("weiss nicht",  "weiss nicht" ) ~ "", 
    income %in% c( "Interview abgebrochen" ) ~ "", 
    income %in% c( "Mehrfachnennungen" ) ~ "", 
    income %in% c( "unter 500 Euro", "unter 500 Euro") ~ "unter 500 Euro", 
    income %in% c( "500 bis unter 750 Euro", "500 bis unter 750 Euro") ~ "500 bis unter 750 Euro", 
    income %in% c( "750 bis unter 1000 Euro", "750 bis unter 1.000 Euro") ~ "750 bis unter 1.000 Euro", 
    income %in% c( "1000 bis unter 1250 Euro", "1.000 bis unter 1.250 Euro") ~ "1.000 bis unter 1.250 Euro", 
    income %in% c( "1250 bis unter 1500 Euro", "1.250 bis unter 1.500 Euro") ~ "1.250 bis unter 1.500 Euro", 
    income %in% c( "1500 bis unter 2000 Euro", "1.500 bis unter 2.000 Euro") ~ "1.500 bis unter 2.000 Euro", 
    income %in% c( "2000 bis unter 2500 Euro", "2.000 bis unter 2.500 Euro") ~ "2.000 bis unter 2.500 Euro", 
    income %in% c( "2500 bis unter 3000 Euro", "2.500 bis unter 3.000 Euro") ~ "2.500 bis unter 3.000 Euro", 
    income %in% c( "3000 bis unter 4000 Euro", "3.000 bis unter 4.000 Euro") ~ "3.000 bis unter 4.000 Euro", 
    income %in% c( "4000 bis unter 5000 Euro", "4.000 bis unter 5.000 Euro") ~ "4.000 bis unter 5.000 Euro", 
    income %in% c( "5000 bis unter 7500 Euro", "5.000 bis unter 7.500 Euro") ~ "5.000 bis unter 7.500 Euro", 
    income %in% c( "7500 bis unter 10000 Euro",  "7.500 bis unter 10.000 Euro") ~"7.500 bis unter 10.000 Euro", 
    income %in% c( "10000 Euro und mehr", "10.000 Euro und mehr" ) ~ "10.000 Euro und mehr"
  )) %>% 
  mutate(income=factor(income, levels=c("unter 500 Euro", 
                                        "500 bis unter 750 Euro", "750 bis unter 1.000 Euro", "1.000 bis unter 1.250 Euro", 
                                        "1.250 bis unter 1.500 Euro", "1.500 bis unter 2.000 Euro", "2.000 bis unter 2.500 Euro", 
                                        "2.500 bis unter 3.000 Euro", "3.000 bis unter 4.000 Euro", "4.000 bis unter 5.000 Euro", 
                                        "5.000 bis unter 7.500 Euro", "7.500 bis unter 10.000 Euro", 
                                        "10.000 Euro und mehr"))) %>% 
  mutate(occwirt=case_when(
    occwirt %in% c("keine Angabe", "weiss nicht", "trifft nicht zu", "Interview abgebrochen", "Fehler in Daten", 
                   "Mehrfachnennungen" )~ "", TRUE ~ as.character(occwirt))) %>% 
  mutate(occwirt=factor(occwirt, levels= c("Land-, Forst-, Fischereiwirtschaft", "Energie-, Wasserversorgung, Bergbau", 
                                           "verarbeitendes Gewerbe", "Bau und Immobilien", "Handel", "Hotel- und Gaststaettengewerbe", 
                                           "Verkehr", "Banken, Versicherungen", "Informationstechnologie, Datenverarbeitung", 
                                           "andere kommerzielle Dienstleistungen (z.B. rechtliche oder wirtschaftliche Beratung, Rechtsdienstleistungen)", 
                                           "Verwaltung", "Bildung, Forschung und Entwicklung", "soziale Dienstleistungen (Pflege, Betreuung, Therapie etc.)", 
                                           "andere Dienstleistungen"))) %>% 
  mutate(education=case_when(
    education %in% c("keine Angabe", "Interview abgebrochen", "trifft nicht zu", "Mehrfachnennungen") ~ "",
    education %in% c("Schule beendet ohne Abschluss", "Schule beendet ohne Abschluss") ~ "Schule beendet ohne Abschluss",
    education %in% c("Hauptschulabschluss,Volksschulabschluss, Abschluss der polytechnischen Oberschule 8. oder 9. Klasse","Hauptschulabschluss, Volksschulabschluss, Abschluss der Polytechnischen Oberschule 8. oder 9. Klasse" ) ~ "Hauptschulabschluss, Volksschulabschluss, Abschluss der Polytechnischen Oberschule 8. oder 9. Klasse",
    education %in% c("Realschulabschluss, Mittlere Reife, Fachschulreife oder Abschluss der polytechnischen Oberschule 10. Klasse", "Realschulabschluss, Mittlere Reife, Fachschulreife oder Abschluss der Polytechnischen Oberschule 10. Klasse") ~ "Realschulabschluss, Mittlere Reife, Fachschulreife oder Abschluss der Polytechnischen Oberschule 10. Klasse",
    education %in% c("Fachhochschulreife (Abschluss einer Fachoberschule etc.)",  "Fachhochschulreife (Abschluss einer Fachoberschule etc.)") ~ "Fachhochschulreife (Abschluss einer Fachoberschule etc.)",
    education %in% c("Abitur bzw. erweiterte Oberschule mit Abschluss 12. Klasse (Hochschulreife)", "Abitur bzw. erweiterte Oberschule mit Abschluss 12. Klasse (Hochschulreife)") ~ "Abitur bzw. erweiterte Oberschule mit Abschluss 12. Klasse (Hochschulreife)",
    education %in% c("anderen Schulabschluss", "anderen Schulabschluss, und zwar") ~ "anderen Schulabschluss, und zwar",
    education %in% c("bin noch Schueler",  "bin noch Schueler/in") ~ "bin noch Schueler/in")) %>% 
  mutate(education=factor(education, levels= c("Abitur bzw. erweiterte Oberschule mit Abschluss 12. Klasse (Hochschulreife)", 
                                               "Realschulabschluss, Mittlere Reife, Fachschulreife oder Abschluss der Polytechnischen Oberschule 10. Klasse", 
                                               "Fachhochschulreife (Abschluss einer Fachoberschule etc.)", "Hauptschulabschluss, Volksschulabschluss, Abschluss der Polytechnischen Oberschule 8. oder 9. Klasse", 
                                               "anderen Schulabschluss, und zwar", "Schule beendet ohne Abschluss", 
                                               "bin noch Schueler/in"))) %>%
  mutate(occupation=case_when(
    occupation %in% c("keine Angabe","weiss nicht", "trifft nicht zu","Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen") ~ "",
    occupation %in% c("un- und angelernter Arbeiter", "un- und angelernte/r Arbeiter/in") ~ "un- und angelernte/r Arbeiter/in",
    occupation %in% c("gelernter und Facharbeiter", "gelernte/r und Facharbeiter/in") ~ "gelernte/r und Facharbeiter/in",
    occupation %in% c("Vorarbeiter, Meister, Polier", "Vorarbeiter/in, Meister/in, Polier/in") ~ "Vorarbeiter/in, Meister/in, Polier/in",
    occupation %in% c("Industrie- und Werkmeister/in im Angestelltenverhaeltnis",  "Industrie- und Werkmeister im Angestelltenverhaeltnis") ~ "Industrie- und Werkmeister/in im Angestelltenverhaeltnis",
    occupation %in% c("Angestellte/r mit einfacher Taetigkeit",  "Angestellter mit einfacher Taetigkeit") ~ "Angestellte/r mit einfacher Taetigkeit",
    occupation %in% c("Angestellte/r, die/der schwierige Aufgaben nach allgemeiner Anweisung selbststaendig erledigt",  "Angestellter (schwierige Aufgaben nach Anweisung bearbeitet)") ~ "Angestellte/r, die/der schwierige Aufgaben nach allgemeiner Anweisung selbststaendig erledigt",
    occupation %in% c("Angestellte/r, die/der selbststaendige Leistungen in verantwortungsvoller Taetigkeit erbringt",  "Angestellter (selbststaendige Leistungen oder Verantwortung fuer andere)") ~ "Angestellter (selbststaendige Leistungen oder Verantwortung fuer andere)",
    occupation %in% c("Angestellte/r mit umfassenden Fuehrungsaufgaben und Entscheidungsbefugnissen",  "Angestellter mit umfassenden Fuehrungsaufgaben und Entscheidungsbefugnissen") ~ "Angestellte/r mit umfassenden Fuehrungsaufgaben und Entscheidungsbefugnissen",
    occupation %in% c("Beamter/-in einfacher Dienst (bis einschl. Oberamtsleiter/in)",  "einfacher Dienst") ~ "Beamter/-in einfacher Dienst (bis einschl. Oberamtsleiter/in)",
    occupation %in% c("Beamter/-in mittlerer Dienst (Assistent/in bis einschl. Hauptsekretaer/in, Amtsinspektor/in)",  "mittlerer Dienst") ~ "Beamter/-in mittlerer Dienst (Assistent/in bis einschl. Hauptsekretaer/in, Amtsinspektor/in)",
    occupation %in% c("Beamter/-in gehobener Dienst (Inspektor/in bis einschl. Oberamtsmann/-frau, Oberamtsrat/-raetin)",  "gehobener Dienst") ~ "Beamter/-in gehobener Dienst (Inspektor/in bis einschl. Oberamtsmann/-frau, Oberamtsrat/-raetin)",
    occupation %in% c("Beamter/-in hoeherer Dienst, Richter/in (vom Regierungsrat/-raetin aufwaerts)",  "hoeherer Dienst, Richter") ~ "Beamter/-in hoeherer Dienst, Richter/in (vom Regierungsrat/-raetin aufwaerts)",
    occupation %in% c("Akademisch freier Beruf ohne Mitarbeitende",  "ohne Mitarbeiter (akademisch freier Beruf)") ~ "Akademisch freier Beruf ohne Mitarbeitende",
    occupation %in% c("Akademisch freier Beruf 1-9 Mitarbeitende",  "1-9 Mitarbeiter (akademisch freier Beruf)") ~ "Akademisch freier Beruf 1-9 Mitarbeitende",
    occupation %in% c("Akademisch freier Beruf 10 Mitarbeitende und mehr",  "10 Mitarbeiter und mehr (akademisch freier Beruf)") ~ "Akademisch freier Beruf 10 Mitarbeitende und mehr",
    occupation %in% c("Selbstaendige/r ohne Mitarbeitende",  "ohne Mitarbeiter (Selbststaendiger)" ) ~ "Selbstaendige/r ohne Mitarbeitende",
    occupation %in% c("Selbstaendige/r 1-9 Mitarbeitende",  "1-9 Mitarbeiter (Selbststaendiger)" ) ~ "Selbstaendige/r 1-9 Mitarbeitende",
    occupation %in% c("Selbstaendige/r 10 Mitarbeitende und mehr",  "10 Mitarbeiter und mehr (Selbststaendiger)" ) ~ "Selbstaendige/r 10 Mitarbeitende und mehr",
    occupation %in% c("selbststaendige/r Landwirt/in",  "selbststaendiger Landwirt" ) ~ "selbststaendige/r Landwirt/in",
    occupation %in% c("mithelfende/r Familienangehoerige/r",  "mithelfender Familienangehoeriger" ) ~ "mithelfende/r Familienangehoerige/r",
    occupation %in% c("in Ausbildung", "in Ausbildung") ~ "in Ausbildung")) %>% 
  mutate(occupation=factor(occupation, levels= c("un- und angelernte/r Arbeiter/in", 
                                                 "gelernte/r und Facharbeiter/in", "Vorarbeiter/in, Meister/in, Polier/in", 
                                                 "Industrie- und Werkmeister/in im Angestelltenverhaeltnis", "Angestellte/r mit einfacher Taetigkeit", 
                                                 "Angestellte/r, die/der schwierige Aufgaben nach allgemeiner Anweisung selbststaendig erledigt", 
                                                 "Angestellte/r, die/der selbststaendige Leistungen in verantwortungsvoller Taetigkeit erbringt", 
                                                 "Angestellte/r mit umfassenden Fuehrungsaufgaben und Entscheidungsbefugnissen", 
                                                 "Beamter/-in einfacher Dienst (bis einschl. Oberamtsleiter/in)", 
                                                 "Beamter/-in mittlerer Dienst (Assistent/in bis einschl. Hauptsekretaer/in, Amtsinspektor/in)", 
                                                 "Beamter/-in gehobener Dienst (Inspektor/in bis einschl. Oberamtsmann/-frau, Oberamtsrat/-raetin)", 
                                                 "Beamter/-in hoeherer Dienst, Richter/in (vom Regierungsrat/-raetin aufwaerts)", 
                                                 "Akademisch freier Beruf ohne Mitarbeitende", "Akademisch freier Beruf 1-9 Mitarbeitende", 
                                                 "Akademisch freier Beruf 10 Mitarbeitende und mehr", "Selbstaendige/r ohne Mitarbeitende", 
                                                 "Selbstaendige/r 1-9 Mitarbeitende", "Selbstaendige/r 10 Mitarbeitende und mehr", 
                                                 "selbststaendige/r Landwirt/in", "mithelfende/r Familienangehoerige/r", 
                                                 "in Ausbildung"))) %>% 
  mutate(voteintention=case_when(
    voteintention %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen") ~ "",
    voteintention %in% c("CDU/CSU") ~ "CDU/CSU",
    voteintention %in% c("SPD") ~ "SPD",
    voteintention %in% c("FDP") ~ "FDP",
    voteintention %in% c("GRUENE") ~ "GRUENE",
    voteintention %in% c("DIE LINKE") ~ "DIE LINKE",
    voteintention %in% c("PIRATEN") ~ "PIRATEN",
    voteintention %in% c("AfD") ~ "AfD",
    voteintention %in% c("andere Partei", "NPD") ~ "andere")) %>% 
  mutate(voteintention=factor(voteintention, levels= c( "CDU/CSU","SPD", "GRUENE", "FDP",  "AfD", "DIE LINKE", "andere"))) %>% 
  mutate(vote=case_when(
    vote %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen") ~ "",
    vote %in% c("CDU/CSU") ~ "CDU/CSU",
    vote %in% c("SPD") ~ "SPD",
    vote %in% c("FDP") ~ "FDP",
    vote %in% c("GRUENE") ~ "GRUENE",
    vote %in% c("DIE LINKE") ~ "DIE LINKE",
    vote %in% c("NPD") ~ "NPD",
    vote %in% c("PIRATEN") ~ "PIRATEN",
    vote %in% c("AfD") ~ "AfD",
    vote %in% c("andere Partei", "Einzelkandidat") ~ "andere")) %>% 
  mutate(vote=factor(vote, levels= c( "CDU/CSU","SPD", "GRUENE", "FDP",  "AfD", "DIE LINKE", "andere"))) %>%
  mutate(votedornot=case_when(votedornot== "ja, ich habe gewaehlt" ~ 1, # adapt answers for 2013_2017  "ja, habe gewaehlt" "nein, habe nicht gewaehlt"
                              votedornot== "nein, ich habe nicht gewaehlt" ~ 0, 
                              TRUE ~ as.numeric(NA))) %>% 
  mutate(pol_interest=case_when(
    pol_interest %in% c("keine Angabe", "Interview abgebrochen","Mehrfachnennungen","weiss nicht") ~ "" ,
    pol_interest %in% c("sehr stark") ~ "sehr stark",
    pol_interest %in% c("stark") ~ "stark" ,
    pol_interest %in% c("mittelmaessig") ~ "mittelmaessig" ,
    pol_interest %in% c("weniger stark") ~ "weniger stark",
    pol_interest %in% c("ueberhaupt nicht") ~ "ueberhaupt nicht")) %>% 
  mutate(pol_interest=factor(pol_interest, levels= c("ueberhaupt nicht", "weniger stark", "mittelmaessig", "stark", "sehr stark"))) %>% 
  mutate(issue_migrant=case_when(
    issue_migrant %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                         "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_migrant %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_migrant %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_migrant %in% c("teils/teils" ) ~ "teils/teils",
    issue_migrant %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_migrant %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_migrant=factor(issue_migrant, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                       "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  mutate(issue_women=case_when(
    issue_women %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                       "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_women %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_women %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_women %in% c("teils/teils" ) ~ "teils/teils",
    issue_women %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_women %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_women=factor(issue_women, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                   "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  mutate(issue_economy=case_when(
    issue_economy %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                         "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_economy %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_economy %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_economy %in% c("teils/teils" ) ~ "teils/teils",
    issue_economy %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_economy %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_economy=factor(issue_economy, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                       "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  mutate(issue_inequal=case_when(
    issue_inequal %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                         "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_inequal %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_inequal %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_inequal %in% c("teils/teils" ) ~ "teils/teils",
    issue_inequal %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_inequal %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_inequal=factor(issue_inequal, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                       "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  mutate(issue_referendum=case_when(
    issue_referendum %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                            "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_referendum %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_referendum %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_referendum %in% c("teils/teils" ) ~ "teils/teils",
    issue_referendum %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_referendum %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_referendum=factor(issue_referendum, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                             "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  
  mutate(issue_fossil=case_when(
    issue_fossil %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                        "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_fossil %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_fossil %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_fossil %in% c("teils/teils" ) ~ "teils/teils",
    issue_fossil %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_fossil %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_fossil=factor(issue_fossil, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                     "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  
  mutate(issue_vaccin=case_when(
    issue_vaccin %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                        "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_vaccin %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_vaccin %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_vaccin %in% c("teils/teils" ) ~ "teils/teils",
    issue_vaccin %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_vaccin %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_vaccin=factor(issue_vaccin, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                     "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  
  mutate(issue_freedom=case_when(
    issue_freedom %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                         "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_freedom %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_freedom %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_freedom %in% c("teils/teils" ) ~ "teils/teils",
    issue_freedom %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_freedom %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_freedom=factor(issue_freedom, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                       "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  mutate(demo=case_when(demo== "genannt" ~ 1,
                        demo== "nicht genannt" ~ 0, 
                        TRUE ~ as.numeric(NA)))  %>% 
  mutate(pos_envi=case_when(
    pos_envi %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    pos_envi %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    pos_envi %in% c("2")~ "2",
    pos_envi %in% c("3")~ "3",
    pos_envi %in% c("4")~ "4",
    pos_envi %in% c("5")~ "5",
    pos_envi %in% c("6")~ "6",
    pos_envi %in% c("7")~ "7",
    pos_envi %in% c("8")~ "8",
    pos_envi %in% c("9")~ "9",
    pos_envi %in% c("10")~ "10",
    pos_envi %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(pos_envi=factor(pos_envi, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  
  mutate(envi_CDU=case_when(
    envi_CDU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_CDU %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_CDU %in% c("2")~ "2",
    envi_CDU %in% c("3")~ "3",
    envi_CDU %in% c("4")~ "4",
    envi_CDU %in% c("5")~ "5",
    envi_CDU %in% c("6")~ "6",
    envi_CDU %in% c("7")~ "7",
    envi_CDU %in% c("8")~ "8",
    envi_CDU %in% c("9")~ "9",
    envi_CDU %in% c("10")~ "10",
    envi_CDU %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_CDU=factor(envi_CDU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_CSU=case_when(
    envi_CSU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_CSU %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_CSU %in% c("2")~ "2",
    envi_CSU %in% c("3")~ "3",
    envi_CSU %in% c("4")~ "4",
    envi_CSU %in% c("5")~ "5",
    envi_CSU %in% c("6")~ "6",
    envi_CSU %in% c("7")~ "7",
    envi_CSU %in% c("8")~ "8",
    envi_CSU %in% c("9")~ "9",
    envi_CSU %in% c("10")~ "10",
    envi_CSU %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_CSU=factor(envi_CSU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_SPD=case_when(
    envi_SPD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_SPD %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_SPD %in% c("2")~ "2",
    envi_SPD %in% c("3")~ "3",
    envi_SPD %in% c("4")~ "4",
    envi_SPD %in% c("5")~ "5",
    envi_SPD %in% c("6")~ "6",
    envi_SPD %in% c("7")~ "7",
    envi_SPD %in% c("8")~ "8",
    envi_SPD %in% c("9")~ "9",
    envi_SPD %in% c("10")~ "10",
    envi_SPD %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_SPD=factor(envi_SPD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_FDP=case_when(
    envi_FDP %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_FDP %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_FDP %in% c("2")~ "2",
    envi_FDP %in% c("3")~ "3",
    envi_FDP %in% c("4")~ "4",
    envi_FDP %in% c("5")~ "5",
    envi_FDP %in% c("6")~ "6",
    envi_FDP %in% c("7")~ "7",
    envi_FDP %in% c("8")~ "8",
    envi_FDP %in% c("9")~ "9",
    envi_FDP %in% c("10")~ "10",
    envi_FDP %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_FDP=factor(envi_FDP, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_GRU=case_when(
    envi_GRU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_GRU %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_GRU %in% c("2")~ "2",
    envi_GRU %in% c("3")~ "3",
    envi_GRU %in% c("4")~ "4",
    envi_GRU %in% c("5")~ "5",
    envi_GRU %in% c("6")~ "6",
    envi_GRU %in% c("7")~ "7",
    envi_GRU %in% c("8")~ "8",
    envi_GRU %in% c("9")~ "9",
    envi_GRU %in% c("10")~ "10",
    envi_GRU %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_GRU=factor(envi_GRU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_LINK=case_when(
    envi_LINK %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_LINK %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_LINK %in% c("2")~ "2",
    envi_LINK %in% c("3")~ "3",
    envi_LINK %in% c("4")~ "4",
    envi_LINK %in% c("5")~ "5",
    envi_LINK %in% c("6")~ "6",
    envi_LINK %in% c("7")~ "7",
    envi_LINK %in% c("8")~ "8",
    envi_LINK %in% c("9")~ "9",
    envi_LINK %in% c("10")~ "10",
    envi_LINK %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_LINK=factor(pos_envi, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_AfD=case_when(
    envi_AfD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_AfD %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_AfD %in% c("2")~ "2",
    envi_AfD %in% c("3")~ "3",
    envi_AfD %in% c("4")~ "4",
    envi_AfD %in% c("5")~ "5",
    envi_AfD %in% c("6")~ "6",
    envi_AfD %in% c("7")~ "7",
    envi_AfD %in% c("8")~ "8",
    envi_AfD %in% c("9")~ "9",
    envi_AfD %in% c("10")~ "10",
    envi_AfD %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_AfD=factor(envi_AfD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(tax_CDU=case_when(
    tax_CDU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_CDU %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_CDU %in% c("2")~ "2",
    tax_CDU %in% c("3")~ "3",
    tax_CDU %in% c("4")~ "4",
    tax_CDU %in% c("5")~ "5",
    tax_CDU %in% c("6")~ "6",
    tax_CDU %in% c("7")~ "7",
    tax_CDU %in% c("8")~ "8",
    tax_CDU %in% c("9")~ "9",
    tax_CDU %in% c("10")~ "10",
    tax_CDU %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_CDU=factor(tax_CDU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  
  mutate(tax_CSU=case_when(
    tax_CSU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_CSU %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_CSU %in% c("2")~ "2",
    tax_CSU %in% c("3")~ "3",
    tax_CSU %in% c("4")~ "4",
    tax_CSU %in% c("5")~ "5",
    tax_CSU %in% c("6")~ "6",
    tax_CSU %in% c("7")~ "7",
    tax_CSU %in% c("8")~ "8",
    tax_CSU %in% c("9")~ "9",
    tax_CSU %in% c("10")~ "10",
    tax_CSU %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_CSU=factor(tax_CSU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  
  mutate(tax_SPD=case_when(
    tax_SPD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_SPD %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_SPD %in% c("2")~ "2",
    tax_SPD %in% c("3")~ "3",
    tax_SPD %in% c("4")~ "4",
    tax_SPD %in% c("5")~ "5",
    tax_SPD %in% c("6")~ "6",
    tax_SPD %in% c("7")~ "7",
    tax_SPD %in% c("8")~ "8",
    tax_SPD %in% c("9")~ "9",
    tax_SPD %in% c("10")~ "10",
    tax_SPD %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_SPD=factor(tax_SPD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  mutate(tax_AfD=case_when(
    tax_AfD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_AfD %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_AfD %in% c("2")~ "2",
    tax_AfD %in% c("3")~ "3",
    tax_AfD %in% c("4")~ "4",
    tax_AfD %in% c("5")~ "5",
    tax_AfD %in% c("6")~ "6",
    tax_AfD %in% c("7")~ "7",
    tax_AfD %in% c("8")~ "8",
    tax_AfD %in% c("9")~ "9",
    tax_AfD %in% c("10")~ "10",
    tax_AfD %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_AfD=factor(tax_AfD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  mutate(tax_GRU=case_when(
    tax_GRU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_GRU %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_GRU %in% c("2")~ "2",
    tax_GRU %in% c("3")~ "3",
    tax_GRU %in% c("4")~ "4",
    tax_GRU %in% c("5")~ "5",
    tax_GRU %in% c("6")~ "6",
    tax_GRU %in% c("7")~ "7",
    tax_GRU %in% c("8")~ "8",
    tax_GRU %in% c("9")~ "9",
    tax_GRU %in% c("10")~ "10",
    tax_GRU %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_GRU=factor(tax_GRU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  mutate(tax_FDP=case_when(
    tax_FDP %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_FDP %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_FDP %in% c("2")~ "2",
    tax_FDP %in% c("3")~ "3",
    tax_FDP %in% c("4")~ "4",
    tax_FDP %in% c("5")~ "5",
    tax_FDP %in% c("6")~ "6",
    tax_FDP %in% c("7")~ "7",
    tax_FDP %in% c("8")~ "8",
    tax_FDP %in% c("9")~ "9",
    tax_FDP %in% c("10")~ "10",
    tax_FDP %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_FDP=factor(tax_FDP, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  mutate(tax_LINK=case_when(
    tax_LINK %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_LINK %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_LINK %in% c("2")~ "2",
    tax_LINK %in% c("3")~ "3",
    tax_LINK %in% c("4")~ "4",
    tax_LINK %in% c("5")~ "5",
    tax_LINK %in% c("6")~ "6",
    tax_LINK %in% c("7")~ "7",
    tax_LINK %in% c("8")~ "8",
    tax_LINK %in% c("9")~ "9",
    tax_LINK %in% c("10")~ "10",
    tax_LINK %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_LINK=factor(tax_LINK, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  mutate(pos_tax=case_when(
    pos_tax %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    pos_tax %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    pos_tax %in% c("2")~ "2",
    pos_tax %in% c("3")~ "3",
    pos_tax %in% c("4")~ "4",
    pos_tax %in% c("5")~ "5",
    pos_tax %in% c("6")~ "6",
    pos_tax %in% c("7")~ "7",
    pos_tax %in% c("8")~ "8",
    pos_tax %in% c("9")~ "9",
    pos_tax %in% c("10")~ "10",
    pos_tax %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(pos_tax=factor(pos_tax, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  
  mutate(pos_migran=case_when(
    pos_migran %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    pos_migran %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    pos_migran %in% c("2")~ "2",
    pos_migran %in% c("3")~ "3",
    pos_migran %in% c("4")~ "4",
    pos_migran %in% c("5")~ "5",
    pos_migran %in% c("6")~ "6",
    pos_migran %in% c("7")~ "7",
    pos_migran %in% c("8")~ "8",
    pos_migran %in% c("9")~ "9",
    pos_migran %in% c("10")~ "10",
    pos_migran %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(pos_migran=factor(pos_migran, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  
  mutate(migran_CDU=case_when(
    migran_CDU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_CDU %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_CDU %in% c("2")~ "2",
    migran_CDU %in% c("3")~ "3",
    migran_CDU %in% c("4")~ "4",
    migran_CDU %in% c("5")~ "5",
    migran_CDU %in% c("6")~ "6",
    migran_CDU %in% c("7")~ "7",
    migran_CDU %in% c("8")~ "8",
    migran_CDU %in% c("9")~ "9",
    migran_CDU %in% c("10")~ "10",
    migran_CDU %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_CDU=factor(migran_CDU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%
  
  mutate(migran_CSU=case_when(
    migran_CSU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_CSU %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_CSU %in% c("2")~ "2",
    migran_CSU %in% c("3")~ "3",
    migran_CSU %in% c("4")~ "4",
    migran_CSU %in% c("5")~ "5",
    migran_CSU %in% c("6")~ "6",
    migran_CSU %in% c("7")~ "7",
    migran_CSU %in% c("8")~ "8",
    migran_CSU %in% c("9")~ "9",
    migran_CSU %in% c("10")~ "10",
    migran_CSU %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_CSU=factor(migran_CSU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%
  
  mutate(migran_SPD=case_when(
    migran_SPD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_SPD %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_SPD %in% c("2")~ "2",
    migran_SPD %in% c("3")~ "3",
    migran_SPD %in% c("4")~ "4",
    migran_SPD %in% c("5")~ "5",
    migran_SPD %in% c("6")~ "6",
    migran_SPD %in% c("7")~ "7",
    migran_SPD %in% c("8")~ "8",
    migran_SPD %in% c("9")~ "9",
    migran_SPD %in% c("10")~ "10",
    migran_SPD %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_SPD=factor(migran_SPD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%
  
  mutate(migran_FDP=case_when(
    migran_FDP %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_FDP %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_FDP %in% c("2")~ "2",
    migran_FDP %in% c("3")~ "3",
    migran_FDP %in% c("4")~ "4",
    migran_FDP %in% c("5")~ "5",
    migran_FDP %in% c("6")~ "6",
    migran_FDP %in% c("7")~ "7",
    migran_FDP %in% c("8")~ "8",
    migran_FDP %in% c("9")~ "9",
    migran_FDP %in% c("10")~ "10",
    migran_FDP %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_FDP=factor(migran_FDP, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%
  
  mutate(migran_LINK=case_when(
    migran_LINK %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_LINK %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_LINK %in% c("2")~ "2",
    migran_LINK %in% c("3")~ "3",
    migran_LINK %in% c("4")~ "4",
    migran_LINK %in% c("5")~ "5",
    migran_LINK %in% c("6")~ "6",
    migran_LINK %in% c("7")~ "7",
    migran_LINK %in% c("8")~ "8",
    migran_LINK %in% c("9")~ "9",
    migran_LINK %in% c("10")~ "10",
    migran_LINK %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_LINK=factor(migran_LINK, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%
  
  mutate(migran_GRU=case_when(
    migran_GRU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_GRU %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_GRU %in% c("2")~ "2",
    migran_GRU %in% c("3")~ "3",
    migran_GRU %in% c("4")~ "4",
    migran_GRU %in% c("5")~ "5",
    migran_GRU %in% c("6")~ "6",
    migran_GRU %in% c("7")~ "7",
    migran_GRU %in% c("8")~ "8",
    migran_GRU %in% c("9")~ "9",
    migran_GRU %in% c("10")~ "10",
    migran_GRU %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_GRU=factor(migran_GRU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  
  mutate(migran_AfD=case_when(
    migran_AfD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_AfD %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_AfD %in% c("2")~ "2",
    migran_AfD %in% c("3")~ "3",
    migran_AfD %in% c("4")~ "4",
    migran_AfD %in% c("5")~ "5",
    migran_AfD %in% c("6")~ "6",
    migran_AfD %in% c("7")~ "7",
    migran_AfD %in% c("8")~ "8",
    migran_AfD %in% c("9")~ "9",
    migran_AfD %in% c("10")~ "10",
    migran_AfD %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_AfD=factor(migran_AfD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11")))


nd2013_17 <- d2013_17 %>% 
  mutate(female=case_when(gender=="weiblich" ~ 1,
                          gender=="maennlich" ~ 0, 
                          TRUE ~ as.numeric(NA))) %>% 
  select(!gender) %>% 
  filter(!year==2009) %>% 
  mutate(sample=case_when(
    sample %in% c("pre13") ~ "pre13",
    sample %in% c("post13") ~ "post13",
    sample %in% c("pre17") ~ "pre17",
    sample %in% c("post17") ~ "post17",
    sample %in% c("GLES Querschnitt 2021, Vorwahl") ~ "pre2021",
    sample %in% c("GLES Querschnitt 2021, Nachwahl") ~ "post2021")) %>% 
  mutate(sample=factor(sample, levels=c("pre13", "post13", "pre17", "post17", "pre2021", "post2021"))) %>% 
  mutate(income=case_when(
    income %in% c("keine Angabe", "keine Angabe") ~ "", 
    income %in% c("weiss nicht",  "weiss nicht" ) ~ "", 
    income %in% c( "Interview abgebrochen" ) ~ "", 
    income %in% c( "Mehrfachnennungen" ) ~ "", 
    income %in% c( "unter 500 Euro", "unter 500 Euro") ~ "unter 500 Euro", 
    income %in% c( "500 bis unter 750 Euro", "500 bis unter 750 Euro") ~ "500 bis unter 750 Euro", 
    income %in% c( "750 bis unter 1000 Euro", "750 bis unter 1.000 Euro") ~ "750 bis unter 1.000 Euro", 
    income %in% c( "1000 bis unter 1250 Euro", "1.000 bis unter 1.250 Euro") ~ "1.000 bis unter 1.250 Euro", 
    income %in% c( "1250 bis unter 1500 Euro", "1.250 bis unter 1.500 Euro") ~ "1.250 bis unter 1.500 Euro", 
    income %in% c( "1500 bis unter 2000 Euro", "1.500 bis unter 2.000 Euro") ~ "1.500 bis unter 2.000 Euro", 
    income %in% c( "2000 bis unter 2500 Euro", "2.000 bis unter 2.500 Euro") ~ "2.000 bis unter 2.500 Euro", 
    income %in% c( "2500 bis unter 3000 Euro", "2.500 bis unter 3.000 Euro") ~ "2.500 bis unter 3.000 Euro", 
    income %in% c( "3000 bis unter 4000 Euro", "3.000 bis unter 4.000 Euro") ~ "3.000 bis unter 4.000 Euro", 
    income %in% c( "4000 bis unter 5000 Euro", "4.000 bis unter 5.000 Euro") ~ "4.000 bis unter 5.000 Euro", 
    income %in% c( "5000 bis unter 7500 Euro", "5.000 bis unter 7.500 Euro") ~ "5.000 bis unter 7.500 Euro", 
    income %in% c( "7500 bis unter 10000 Euro",  "7.500 bis unter 10.000 Euro") ~"7.500 bis unter 10.000 Euro", 
    income %in% c( "10000 Euro und mehr", "10.000 Euro und mehr" ) ~ "10.000 Euro und mehr"
  )) %>% 
  mutate(income=factor(income, levels=c("unter 500 Euro", 
                                        "500 bis unter 750 Euro", "750 bis unter 1.000 Euro", "1.000 bis unter 1.250 Euro", 
                                        "1.250 bis unter 1.500 Euro", "1.500 bis unter 2.000 Euro", "2.000 bis unter 2.500 Euro", 
                                        "2.500 bis unter 3.000 Euro", "3.000 bis unter 4.000 Euro", "4.000 bis unter 5.000 Euro", 
                                        "5.000 bis unter 7.500 Euro", "7.500 bis unter 10.000 Euro", 
                                        "10.000 Euro und mehr"))) %>% 
  mutate(education=case_when(
    education %in% c("keine Angabe", "Interview abgebrochen", "trifft nicht zu", "Mehrfachnennungen") ~ "",
    education %in% c("Schule beendet ohne Abschluss", "Schule beendet ohne Abschluss") ~ "Schule beendet ohne Abschluss",
    education %in% c("Hauptschulabschluss,Volksschulabschluss, Abschluss der polytechnischen Oberschule 8. oder 9. Klasse","Hauptschulabschluss, Volksschulabschluss, Abschluss der Polytechnischen Oberschule 8. oder 9. Klasse" ) ~ "Hauptschulabschluss, Volksschulabschluss, Abschluss der Polytechnischen Oberschule 8. oder 9. Klasse",
    education %in% c("Realschulabschluss, Mittlere Reife, Fachschulreife oder Abschluss der polytechnischen Oberschule 10. Klasse", "Realschulabschluss, Mittlere Reife, Fachschulreife oder Abschluss der Polytechnischen Oberschule 10. Klasse") ~ "Realschulabschluss, Mittlere Reife, Fachschulreife oder Abschluss der Polytechnischen Oberschule 10. Klasse",
    education %in% c("Fachhochschulreife (Abschluss einer Fachoberschule etc.)",  "Fachhochschulreife (Abschluss einer Fachoberschule etc.)") ~ "Fachhochschulreife (Abschluss einer Fachoberschule etc.)",
    education %in% c("Abitur bzw. erweiterte Oberschule mit Abschluss 12. Klasse (Hochschulreife)", "Abitur bzw. erweiterte Oberschule mit Abschluss 12. Klasse (Hochschulreife)") ~ "Abitur bzw. erweiterte Oberschule mit Abschluss 12. Klasse (Hochschulreife)",
    education %in% c("anderen Schulabschluss", "anderen Schulabschluss, und zwar") ~ "anderen Schulabschluss, und zwar",
    education %in% c("bin noch Schueler",  "bin noch Schueler/in") ~ "bin noch Schueler/in")) %>% 
  mutate(education=factor(education, levels= c("Abitur bzw. erweiterte Oberschule mit Abschluss 12. Klasse (Hochschulreife)", 
                                               "Realschulabschluss, Mittlere Reife, Fachschulreife oder Abschluss der Polytechnischen Oberschule 10. Klasse", 
                                               "Fachhochschulreife (Abschluss einer Fachoberschule etc.)", "Hauptschulabschluss, Volksschulabschluss, Abschluss der Polytechnischen Oberschule 8. oder 9. Klasse", 
                                               "anderen Schulabschluss, und zwar", "Schule beendet ohne Abschluss", 
                                               "bin noch Schueler/in"))) %>%
  mutate(occupation=case_when(
    occupation %in% c("keine Angabe","weiss nicht", "trifft nicht zu","Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen") ~ "",
    occupation %in% c("un- und angelernter Arbeiter", "un- und angelernte/r Arbeiter/in") ~ "un- und angelernte/r Arbeiter/in",
    occupation %in% c("gelernter und Facharbeiter", "gelernte/r und Facharbeiter/in") ~ "gelernte/r und Facharbeiter/in",
    occupation %in% c("Vorarbeiter, Meister, Polier", "Vorarbeiter/in, Meister/in, Polier/in") ~ "Vorarbeiter/in, Meister/in, Polier/in",
    occupation %in% c("Industrie- und Werkmeister/in im Angestelltenverhaeltnis",  "Industrie- und Werkmeister im Angestelltenverhaeltnis") ~ "Industrie- und Werkmeister/in im Angestelltenverhaeltnis",
    occupation %in% c("Angestellte/r mit einfacher Taetigkeit",  "Angestellter mit einfacher Taetigkeit") ~ "Angestellte/r mit einfacher Taetigkeit",
    occupation %in% c("Angestellte/r, die/der schwierige Aufgaben nach allgemeiner Anweisung selbststaendig erledigt",  "Angestellter (schwierige Aufgaben nach Anweisung bearbeitet)") ~ "Angestellte/r, die/der schwierige Aufgaben nach allgemeiner Anweisung selbststaendig erledigt",
    occupation %in% c("Angestellte/r, die/der selbststaendige Leistungen in verantwortungsvoller Taetigkeit erbringt",  "Angestellter (selbststaendige Leistungen oder Verantwortung fuer andere)") ~ "Angestellter (selbststaendige Leistungen oder Verantwortung fuer andere)",
    occupation %in% c("Angestellte/r mit umfassenden Fuehrungsaufgaben und Entscheidungsbefugnissen",  "Angestellter mit umfassenden Fuehrungsaufgaben und Entscheidungsbefugnissen") ~ "Angestellte/r mit umfassenden Fuehrungsaufgaben und Entscheidungsbefugnissen",
    occupation %in% c("Beamter/-in einfacher Dienst (bis einschl. Oberamtsleiter/in)",  "einfacher Dienst") ~ "Beamter/-in einfacher Dienst (bis einschl. Oberamtsleiter/in)",
    occupation %in% c("Beamter/-in mittlerer Dienst (Assistent/in bis einschl. Hauptsekretaer/in, Amtsinspektor/in)",  "mittlerer Dienst") ~ "Beamter/-in mittlerer Dienst (Assistent/in bis einschl. Hauptsekretaer/in, Amtsinspektor/in)",
    occupation %in% c("Beamter/-in gehobener Dienst (Inspektor/in bis einschl. Oberamtsmann/-frau, Oberamtsrat/-raetin)",  "gehobener Dienst") ~ "Beamter/-in gehobener Dienst (Inspektor/in bis einschl. Oberamtsmann/-frau, Oberamtsrat/-raetin)",
    occupation %in% c("Beamter/-in hoeherer Dienst, Richter/in (vom Regierungsrat/-raetin aufwaerts)",  "hoeherer Dienst, Richter") ~ "Beamter/-in hoeherer Dienst, Richter/in (vom Regierungsrat/-raetin aufwaerts)",
    occupation %in% c("Akademisch freier Beruf ohne Mitarbeitende",  "ohne Mitarbeiter (akademisch freier Beruf)") ~ "Akademisch freier Beruf ohne Mitarbeitende",
    occupation %in% c("Akademisch freier Beruf 1-9 Mitarbeitende",  "1-9 Mitarbeiter (akademisch freier Beruf)") ~ "Akademisch freier Beruf 1-9 Mitarbeitende",
    occupation %in% c("Akademisch freier Beruf 10 Mitarbeitende und mehr",  "10 Mitarbeiter und mehr (akademisch freier Beruf)") ~ "Akademisch freier Beruf 10 Mitarbeitende und mehr",
    occupation %in% c("Selbstaendige/r ohne Mitarbeitende",  "ohne Mitarbeiter (Selbststaendiger)" ) ~ "Selbstaendige/r ohne Mitarbeitende",
    occupation %in% c("Selbstaendige/r 1-9 Mitarbeitende",  "1-9 Mitarbeiter (Selbststaendiger)" ) ~ "Selbstaendige/r 1-9 Mitarbeitende",
    occupation %in% c("Selbstaendige/r 10 Mitarbeitende und mehr",  "10 Mitarbeiter und mehr (Selbststaendiger)" ) ~ "Selbstaendige/r 10 Mitarbeitende und mehr",
    occupation %in% c("selbststaendige/r Landwirt/in",  "selbststaendiger Landwirt" ) ~ "selbststaendige/r Landwirt/in",
    occupation %in% c("mithelfende/r Familienangehoerige/r",  "mithelfender Familienangehoeriger" ) ~ "mithelfende/r Familienangehoerige/r",
    occupation %in% c("in Ausbildung", "in Ausbildung") ~ "in Ausbildung")) %>% 
  mutate(occupation=factor(occupation, levels= c("un- und angelernte/r Arbeiter/in", 
                                                 "gelernte/r und Facharbeiter/in", "Vorarbeiter/in, Meister/in, Polier/in", 
                                                 "Industrie- und Werkmeister/in im Angestelltenverhaeltnis", "Angestellte/r mit einfacher Taetigkeit", 
                                                 "Angestellte/r, die/der schwierige Aufgaben nach allgemeiner Anweisung selbststaendig erledigt", 
                                                 "Angestellte/r, die/der selbststaendige Leistungen in verantwortungsvoller Taetigkeit erbringt", 
                                                 "Angestellte/r mit umfassenden Fuehrungsaufgaben und Entscheidungsbefugnissen", 
                                                 "Beamter/-in einfacher Dienst (bis einschl. Oberamtsleiter/in)", 
                                                 "Beamter/-in mittlerer Dienst (Assistent/in bis einschl. Hauptsekretaer/in, Amtsinspektor/in)", 
                                                 "Beamter/-in gehobener Dienst (Inspektor/in bis einschl. Oberamtsmann/-frau, Oberamtsrat/-raetin)", 
                                                 "Beamter/-in hoeherer Dienst, Richter/in (vom Regierungsrat/-raetin aufwaerts)", 
                                                 "Akademisch freier Beruf ohne Mitarbeitende", "Akademisch freier Beruf 1-9 Mitarbeitende", 
                                                 "Akademisch freier Beruf 10 Mitarbeitende und mehr", "Selbstaendige/r ohne Mitarbeitende", 
                                                 "Selbstaendige/r 1-9 Mitarbeitende", "Selbstaendige/r 10 Mitarbeitende und mehr", 
                                                 "selbststaendige/r Landwirt/in", "mithelfende/r Familienangehoerige/r", 
                                                 "in Ausbildung"))) %>% 
  mutate(voteintention=case_when(
    voteintention %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen") ~ "",
    voteintention %in% c("CDU/CSU") ~ "CDU/CSU",
    voteintention %in% c("SPD") ~ "SPD",
    voteintention %in% c("FDP") ~ "FDP",
    voteintention %in% c("GRUENE") ~ "GRUENE",
    voteintention %in% c("DIE LINKE") ~ "DIE LINKE",
    voteintention %in% c("PIRATEN") ~ "PIRATEN",
    voteintention %in% c("AfD") ~ "AfD",
    voteintention %in% c("andere Partei", "NPD") ~ "andere")) %>% 
  mutate(voteintention=factor(voteintention, levels= c( "CDU/CSU","SPD", "GRUENE", "FDP",  "AfD", "DIE LINKE", "andere"))) %>% 
  mutate(vote=case_when(
    vote %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen") ~ "",
    vote %in% c("CDU/CSU") ~ "CDU/CSU",
    vote %in% c("SPD") ~ "SPD",
    vote %in% c("FDP") ~ "FDP",
    vote %in% c("GRUENE") ~ "GRUENE",
    vote %in% c("DIE LINKE") ~ "DIE LINKE",
    vote %in% c("NPD") ~ "NPD",
    vote %in% c("PIRATEN") ~ "PIRATEN",
    vote %in% c("AfD") ~ "AfD",
    vote %in% c("andere Partei", "Einzelkandidat") ~ "andere")) %>% 
  mutate(vote=factor(vote, levels= c( "CDU/CSU","SPD", "GRUENE", "FDP",  "AfD", "DIE LINKE", "andere"))) %>%
  mutate(votedornot=case_when(votedornot== "ja, habe gewaehlt" ~ 1,
                              votedornot== "nein, habe nicht gewaehlt" ~ 0, 
                              TRUE ~ as.numeric(NA))) %>% 
  mutate(pol_interest=case_when(
    pol_interest %in% c("keine Angabe", "Interview abgebrochen","Mehrfachnennungen","weiss nicht") ~ "" ,
    pol_interest %in% c("sehr stark") ~ "sehr stark",
    pol_interest %in% c("stark") ~ "stark" ,
    pol_interest %in% c("mittelmaessig") ~ "mittelmaessig" ,
    pol_interest %in% c("weniger stark") ~ "weniger stark",
    pol_interest %in% c("ueberhaupt nicht") ~ "ueberhaupt nicht")) %>% 
  mutate(pol_interest=factor(pol_interest, levels= c("ueberhaupt nicht", "weniger stark", "mittelmaessig", "stark", "sehr stark"))) %>% 
  mutate(issue_migrant=case_when(
    issue_migrant %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                         "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_migrant %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_migrant %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_migrant %in% c("teils/teils" ) ~ "teils/teils",
    issue_migrant %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_migrant %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_migrant=factor(issue_migrant, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                       "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  mutate(issue_women=case_when(
    issue_women %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                       "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_women %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_women %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_women %in% c("teils/teils" ) ~ "teils/teils",
    issue_women %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_women %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_women=factor(issue_women, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                   "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  mutate(issue_economy=case_when(
    issue_economy %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                         "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_economy %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_economy %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_economy %in% c("teils/teils" ) ~ "teils/teils",
    issue_economy %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_economy %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_economy=factor(issue_economy, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                       "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  mutate(issue_inequal=case_when(
    issue_inequal %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                         "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_inequal %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_inequal %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_inequal %in% c("teils/teils" ) ~ "teils/teils",
    issue_inequal %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_inequal %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_inequal=factor(issue_inequal, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                       "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  mutate(issue_referendum=case_when(
    issue_referendum %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                            "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_referendum %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_referendum %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_referendum %in% c("teils/teils" ) ~ "teils/teils",
    issue_referendum %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_referendum %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_referendum=factor(issue_referendum, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                             "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  
  mutate(issue_nuclear=case_when(
    issue_nuclear %in% c("keine Angabe","ungueltig waehlen", "trifft nicht zu", "nicht in Auswahlgesamtheit", "weiss nicht", 
                         "Interview abgebrochen", "Fehler in Daten", "Mehrfachnennungen", "nicht wahlberechtigt")~ "",
    issue_nuclear %in% c("stimme voll und ganz zu" ) ~ "stimme voll und ganz zu",
    issue_nuclear %in% c("stimme eher zu" ) ~ "stimme eher zu",
    issue_nuclear %in% c("teils/teils" ) ~ "teils/teils",
    issue_nuclear %in% c("stimme eher nicht zu") ~ "stimme eher nicht zu",
    issue_nuclear %in% c("stimme ueberhaupt nicht zu" ) ~ "stimme ueberhaupt nicht zu")) %>% 
  mutate(issue_nuclear=factor(issue_nuclear, levels= c("stimme ueberhaupt nicht zu", "stimme eher nicht zu", 
                                                       "teils/teils", "stimme eher zu", "stimme voll und ganz zu"))) %>% 
  
  mutate(demo=case_when(demo== "ja" ~ 1,
                        demo== "nein" ~ 0, 
                        TRUE ~ as.numeric(NA)))  %>% 
  mutate(pos_envi=case_when(
    pos_envi %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    pos_envi %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    pos_envi %in% c("2")~ "2",
    pos_envi %in% c("3")~ "3",
    pos_envi %in% c("4")~ "4",
    pos_envi %in% c("5")~ "5",
    pos_envi %in% c("6")~ "6",
    pos_envi %in% c("7")~ "7",
    pos_envi %in% c("8")~ "8",
    pos_envi %in% c("9")~ "9",
    pos_envi %in% c("10")~ "10",
    pos_envi %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(pos_envi=factor(pos_envi, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  
  mutate(envi_CDU=case_when(
    envi_CDU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_CDU %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_CDU %in% c("2")~ "2",
    envi_CDU %in% c("3")~ "3",
    envi_CDU %in% c("4")~ "4",
    envi_CDU %in% c("5")~ "5",
    envi_CDU %in% c("6")~ "6",
    envi_CDU %in% c("7")~ "7",
    envi_CDU %in% c("8")~ "8",
    envi_CDU %in% c("9")~ "9",
    envi_CDU %in% c("10")~ "10",
    envi_CDU %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_CDU=factor(envi_CDU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_CSU=case_when(
    envi_CSU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_CSU %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_CSU %in% c("2")~ "2",
    envi_CSU %in% c("3")~ "3",
    envi_CSU %in% c("4")~ "4",
    envi_CSU %in% c("5")~ "5",
    envi_CSU %in% c("6")~ "6",
    envi_CSU %in% c("7")~ "7",
    envi_CSU %in% c("8")~ "8",
    envi_CSU %in% c("9")~ "9",
    envi_CSU %in% c("10")~ "10",
    envi_CSU %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_CSU=factor(envi_CSU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_SPD=case_when(
    envi_SPD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_SPD %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_SPD %in% c("2")~ "2",
    envi_SPD %in% c("3")~ "3",
    envi_SPD %in% c("4")~ "4",
    envi_SPD %in% c("5")~ "5",
    envi_SPD %in% c("6")~ "6",
    envi_SPD %in% c("7")~ "7",
    envi_SPD %in% c("8")~ "8",
    envi_SPD %in% c("9")~ "9",
    envi_SPD %in% c("10")~ "10",
    envi_SPD %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_SPD=factor(envi_SPD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_FDP=case_when(
    envi_FDP %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_FDP %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_FDP %in% c("2")~ "2",
    envi_FDP %in% c("3")~ "3",
    envi_FDP %in% c("4")~ "4",
    envi_FDP %in% c("5")~ "5",
    envi_FDP %in% c("6")~ "6",
    envi_FDP %in% c("7")~ "7",
    envi_FDP %in% c("8")~ "8",
    envi_FDP %in% c("9")~ "9",
    envi_FDP %in% c("10")~ "10",
    envi_FDP %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_FDP=factor(envi_FDP, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_GRU=case_when(
    envi_GRU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_GRU %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_GRU %in% c("2")~ "2",
    envi_GRU %in% c("3")~ "3",
    envi_GRU %in% c("4")~ "4",
    envi_GRU %in% c("5")~ "5",
    envi_GRU %in% c("6")~ "6",
    envi_GRU %in% c("7")~ "7",
    envi_GRU %in% c("8")~ "8",
    envi_GRU %in% c("9")~ "9",
    envi_GRU %in% c("10")~ "10",
    envi_GRU %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_GRU=factor(envi_GRU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_LINK=case_when(
    envi_LINK %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_LINK %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_LINK %in% c("2")~ "2",
    envi_LINK %in% c("3")~ "3",
    envi_LINK %in% c("4")~ "4",
    envi_LINK %in% c("5")~ "5",
    envi_LINK %in% c("6")~ "6",
    envi_LINK %in% c("7")~ "7",
    envi_LINK %in% c("8")~ "8",
    envi_LINK %in% c("9")~ "9",
    envi_LINK %in% c("10")~ "10",
    envi_LINK %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_LINK=factor(pos_envi, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(envi_AfD=case_when(
    envi_AfD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    envi_AfD %in% c("1 Politik muesste noch viel mehr zur Bekaempfung des Klimawandels tun", "1 Vorrang fuer Bekaempfung des Klimawandels, auch wenn es dem Wirtschaftswachstum schadet")~ "1",
    envi_AfD %in% c("2")~ "2",
    envi_AfD %in% c("3")~ "3",
    envi_AfD %in% c("4")~ "4",
    envi_AfD %in% c("5")~ "5",
    envi_AfD %in% c("6")~ "6",
    envi_AfD %in% c("7")~ "7",
    envi_AfD %in% c("8")~ "8",
    envi_AfD %in% c("9")~ "9",
    envi_AfD %in% c("10")~ "10",
    envi_AfD %in% c("11 Politik zur Bekaempfung des Klimawandels ist schon viel zu weit gegangen", "11 Vorrang fuer Wirtschaftswachstum, auch wenn es die Bekaempfung des Klimawandels erschwert") ~ "11")) %>% 
  
  mutate(envi_AfD=factor(envi_AfD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%  
  mutate(tax_CDU=case_when(
    tax_CDU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_CDU %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_CDU %in% c("2")~ "2",
    tax_CDU %in% c("3")~ "3",
    tax_CDU %in% c("4")~ "4",
    tax_CDU %in% c("5")~ "5",
    tax_CDU %in% c("6")~ "6",
    tax_CDU %in% c("7")~ "7",
    tax_CDU %in% c("8")~ "8",
    tax_CDU %in% c("9")~ "9",
    tax_CDU %in% c("10")~ "10",
    tax_CDU %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_CDU=factor(tax_CDU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  
  mutate(tax_CSU=case_when(
    tax_CSU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_CSU %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_CSU %in% c("2")~ "2",
    tax_CSU %in% c("3")~ "3",
    tax_CSU %in% c("4")~ "4",
    tax_CSU %in% c("5")~ "5",
    tax_CSU %in% c("6")~ "6",
    tax_CSU %in% c("7")~ "7",
    tax_CSU %in% c("8")~ "8",
    tax_CSU %in% c("9")~ "9",
    tax_CSU %in% c("10")~ "10",
    tax_CSU %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_CSU=factor(tax_CSU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  
  mutate(tax_SPD=case_when(
    tax_SPD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_SPD %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_SPD %in% c("2")~ "2",
    tax_SPD %in% c("3")~ "3",
    tax_SPD %in% c("4")~ "4",
    tax_SPD %in% c("5")~ "5",
    tax_SPD %in% c("6")~ "6",
    tax_SPD %in% c("7")~ "7",
    tax_SPD %in% c("8")~ "8",
    tax_SPD %in% c("9")~ "9",
    tax_SPD %in% c("10")~ "10",
    tax_SPD %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_SPD=factor(tax_SPD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  mutate(tax_AfD=case_when(
    tax_AfD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_AfD %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_AfD %in% c("2")~ "2",
    tax_AfD %in% c("3")~ "3",
    tax_AfD %in% c("4")~ "4",
    tax_AfD %in% c("5")~ "5",
    tax_AfD %in% c("6")~ "6",
    tax_AfD %in% c("7")~ "7",
    tax_AfD %in% c("8")~ "8",
    tax_AfD %in% c("9")~ "9",
    tax_AfD %in% c("10")~ "10",
    tax_AfD %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_AfD=factor(tax_AfD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  mutate(tax_GRU=case_when(
    tax_GRU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_GRU %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_GRU %in% c("2")~ "2",
    tax_GRU %in% c("3")~ "3",
    tax_GRU %in% c("4")~ "4",
    tax_GRU %in% c("5")~ "5",
    tax_GRU %in% c("6")~ "6",
    tax_GRU %in% c("7")~ "7",
    tax_GRU %in% c("8")~ "8",
    tax_GRU %in% c("9")~ "9",
    tax_GRU %in% c("10")~ "10",
    tax_GRU %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_GRU=factor(tax_GRU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  mutate(tax_FDP=case_when(
    tax_FDP %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_FDP %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_FDP %in% c("2")~ "2",
    tax_FDP %in% c("3")~ "3",
    tax_FDP %in% c("4")~ "4",
    tax_FDP %in% c("5")~ "5",
    tax_FDP %in% c("6")~ "6",
    tax_FDP %in% c("7")~ "7",
    tax_FDP %in% c("8")~ "8",
    tax_FDP %in% c("9")~ "9",
    tax_FDP %in% c("10")~ "10",
    tax_FDP %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_FDP=factor(tax_FDP, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  mutate(tax_LINK=case_when(
    tax_LINK %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    tax_LINK %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    tax_LINK %in% c("2")~ "2",
    tax_LINK %in% c("3")~ "3",
    tax_LINK %in% c("4")~ "4",
    tax_LINK %in% c("5")~ "5",
    tax_LINK %in% c("6")~ "6",
    tax_LINK %in% c("7")~ "7",
    tax_LINK %in% c("8")~ "8",
    tax_LINK %in% c("9")~ "9",
    tax_LINK %in% c("10")~ "10",
    tax_LINK %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(tax_LINK=factor(tax_LINK, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  mutate(pos_tax=case_when(
    pos_tax %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    pos_tax %in% c("1 weniger Steuern und Abgaben, auch wenn das weniger sozialstaatliche Leistungen bedeutet", "1 weniger Steuern und weniger sozialstaatliche Leistungen")~ "1",
    pos_tax %in% c("2")~ "2",
    pos_tax %in% c("3")~ "3",
    pos_tax %in% c("4")~ "4",
    pos_tax %in% c("5")~ "5",
    pos_tax %in% c("6")~ "6",
    pos_tax %in% c("7")~ "7",
    pos_tax %in% c("8")~ "8",
    pos_tax %in% c("9")~ "9",
    pos_tax %in% c("10")~ "10",
    pos_tax %in% c("11 mehr sozialstaatliche Leistungen, auch wenn das mehr Steuern und Abgaben bedeutet", "11 mehr sozialstaatliche Leistungen und mehr Steuern") ~ "11")) %>% 
  
  mutate(pos_tax=factor(pos_tax, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  
  mutate(pos_migran=case_when(
    pos_migran %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    pos_migran %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    pos_migran %in% c("2")~ "2",
    pos_migran %in% c("3")~ "3",
    pos_migran %in% c("4")~ "4",
    pos_migran %in% c("5")~ "5",
    pos_migran %in% c("6")~ "6",
    pos_migran %in% c("7")~ "7",
    pos_migran %in% c("8")~ "8",
    pos_migran %in% c("9")~ "9",
    pos_migran %in% c("10")~ "10",
    pos_migran %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(pos_migran=factor(pos_migran, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  
  mutate(migran_CDU=case_when(
    migran_CDU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_CDU %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_CDU %in% c("2")~ "2",
    migran_CDU %in% c("3")~ "3",
    migran_CDU %in% c("4")~ "4",
    migran_CDU %in% c("5")~ "5",
    migran_CDU %in% c("6")~ "6",
    migran_CDU %in% c("7")~ "7",
    migran_CDU %in% c("8")~ "8",
    migran_CDU %in% c("9")~ "9",
    migran_CDU %in% c("10")~ "10",
    migran_CDU %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_CDU=factor(migran_CDU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%
  
  mutate(migran_CSU=case_when(
    migran_CSU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_CSU %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_CSU %in% c("2")~ "2",
    migran_CSU %in% c("3")~ "3",
    migran_CSU %in% c("4")~ "4",
    migran_CSU %in% c("5")~ "5",
    migran_CSU %in% c("6")~ "6",
    migran_CSU %in% c("7")~ "7",
    migran_CSU %in% c("8")~ "8",
    migran_CSU %in% c("9")~ "9",
    migran_CSU %in% c("10")~ "10",
    migran_CSU %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_CSU=factor(migran_CSU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%
  
  mutate(migran_SPD=case_when(
    migran_SPD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_SPD %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_SPD %in% c("2")~ "2",
    migran_SPD %in% c("3")~ "3",
    migran_SPD %in% c("4")~ "4",
    migran_SPD %in% c("5")~ "5",
    migran_SPD %in% c("6")~ "6",
    migran_SPD %in% c("7")~ "7",
    migran_SPD %in% c("8")~ "8",
    migran_SPD %in% c("9")~ "9",
    migran_SPD %in% c("10")~ "10",
    migran_SPD %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_SPD=factor(migran_SPD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%
  
  mutate(migran_FDP=case_when(
    migran_FDP %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_FDP %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_FDP %in% c("2")~ "2",
    migran_FDP %in% c("3")~ "3",
    migran_FDP %in% c("4")~ "4",
    migran_FDP %in% c("5")~ "5",
    migran_FDP %in% c("6")~ "6",
    migran_FDP %in% c("7")~ "7",
    migran_FDP %in% c("8")~ "8",
    migran_FDP %in% c("9")~ "9",
    migran_FDP %in% c("10")~ "10",
    migran_FDP %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_FDP=factor(migran_FDP, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%
  
  mutate(migran_LINK=case_when(
    migran_LINK %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_LINK %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_LINK %in% c("2")~ "2",
    migran_LINK %in% c("3")~ "3",
    migran_LINK %in% c("4")~ "4",
    migran_LINK %in% c("5")~ "5",
    migran_LINK %in% c("6")~ "6",
    migran_LINK %in% c("7")~ "7",
    migran_LINK %in% c("8")~ "8",
    migran_LINK %in% c("9")~ "9",
    migran_LINK %in% c("10")~ "10",
    migran_LINK %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_LINK=factor(migran_LINK, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>%
  
  mutate(migran_GRU=case_when(
    migran_GRU %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_GRU %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_GRU %in% c("2")~ "2",
    migran_GRU %in% c("3")~ "3",
    migran_GRU %in% c("4")~ "4",
    migran_GRU %in% c("5")~ "5",
    migran_GRU %in% c("6")~ "6",
    migran_GRU %in% c("7")~ "7",
    migran_GRU %in% c("8")~ "8",
    migran_GRU %in% c("9")~ "9",
    migran_GRU %in% c("10")~ "10",
    migran_GRU %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_GRU=factor(migran_GRU, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  
  mutate(migran_AfD=case_when(
    migran_AfD %in% c("keine Angabe", "Interview abgebrochen", "Mehrfachnennungen", "weiss nicht","nicht in Auswahlgesamtheit")~ "",
    migran_AfD %in% c("1 Zuzug von Auslaendern erleichtern", "1 Zuzugsmoeglichkeiten fuer Auslaender sollten erleichtert werden")~ "1",
    migran_AfD %in% c("2")~ "2",
    migran_AfD %in% c("3")~ "3",
    migran_AfD %in% c("4")~ "4",
    migran_AfD %in% c("5")~ "5",
    migran_AfD %in% c("6")~ "6",
    migran_AfD %in% c("7")~ "7",
    migran_AfD %in% c("8")~ "8",
    migran_AfD %in% c("9")~ "9",
    migran_AfD %in% c("10")~ "10",
    migran_AfD %in% c("11 Zuzugsmoeglichkeiten fuer Auslaender sollten eingeschraenkt werden", "11 Zuzug von Auslaendern einschraenken") ~ "11")) %>% 
  
  mutate(migran_AfD=factor(migran_AfD, levels= c("1","2", "3","4","5", "6", "7", "8", "9", "10", "11"))) %>% 
  mutate(occwirt=case_when(
    occwirt %in% c("keine Angabe", "weiss nicht", "trifft nicht zu", "Interview abgebrochen", "Fehler in Daten", 
                   "Mehrfachnennungen" )~ "", TRUE ~ as.character(occwirt))) %>% 
  mutate(occwirt=factor(occwirt, levels= c("Land-, Forst-, Fischereiwirtschaft", "Energie-, Wasserversorgung, Bergbau", 
                                           "verarbeitendes Gewerbe", "Bau und Immobilien", "Handel", "Hotel- und Gaststaettengewerbe", 
                                           "Verkehr", "Banken, Versicherungen", "Informationstechnologie, Datenverarbeitung", 
                                           "andere kommerzielle Dienstleistungen (z.B. rechtliche oder wirtschaftliche Beratung, Rechtsdienstleistungen)", 
                                           "Verwaltung", "Bildung, Forschung und Entwicklung", "soziale Dienstleistungen (Pflege, Betreuung, Therapie etc.)", 
                                           "andere Dienstleistungen")))

fullset <- plyr::rbind.fill(nd2021, nd2013_17)

fullset <-  fullset %>% mutate(age = replace(age, age==-99, NA)) %>% 
  mutate_at(vars(contains("issue_")), ~case_when(. == "stimme ueberhaupt nicht zu" ~ "1",
                                                 . == "stimme eher nicht zu" ~ "2",
                                                 . == "teils/teils" ~ "3",
                                                 . == "stimme eher zu" ~ "4",
                                                 . == "stimme voll und ganz zu" ~ "5",
                                                 TRUE ~ "")) %>% 
  mutate_at(vars(contains("issue_"), pos_tax, pos_migran), ~as.numeric(.)) %>% 
  mutate(pre=ifelse(grepl("pre", sample), 1, 0)) %>% 
  mutate(post=ifelse(grepl("post", sample), 1, 0)) %>% 
  mutate_at(vars(contains("issue_"), pos_tax, pos_migran), ~((.-min(as.numeric(.), na.rm = TRUE))/
                                                               (max(as.numeric(.), na.rm = TRUE)-min(as.numeric(.), na.rm = TRUE)))) %>% 
  mutate(id=row_number())

# subsetting by missings
dat <- fullset %>%
  drop_na(issue_migrant, issue_women,
          issue_economy, issue_inequal) %>%
  select(year, pre, post, issue_migrant, issue_women,
         issue_economy, issue_inequal, pos_tax, pos_migran, weight, id)

write_dta(dat, paste0(path, "Data/GLES/elect13_17_21.dta"))

```

## need to run factor_analysis_stata.do to get the factor scores and create factor_scores.dta

# Figure 2

```{r, include = T, echo = T, message = F, warning=FALSE, fig.width=6.5, fig.height=10}

fact_sol <- read_dta(paste0(path, "/Data/GLES/factor_scores.dta"))

dat <- merge(fullset, fact_sol, by="id")

dat <- dat %>% 
  filter(post==1) %>% 
  mutate(climate_high=ifelse(pos_envi %in% c(1, 2), 1, 0)) %>% 
  mutate(climate_low=ifelse(pos_envi %in% c(7, 8, 9, 10, 11), 1, 0)) %>% 
  mutate(non_voters=ifelse(votedornot==0, 1, 0)) %>% 
  mutate(AfD=ifelse(vote=="AfD", 1, 0)) %>% 
  mutate(Union=ifelse(vote=="CDU/CSU", 1, 0)) %>% 
  mutate(Linke=ifelse(vote=="DIE LINKE", 1, 0)) %>% 
  mutate(FDP=ifelse(vote=="FDP", 1, 0)) %>% 
  mutate(Gru=ifelse(vote=="GRUENE", 1, 0)) %>% 
  mutate(SPD=ifelse(vote=="SPD", 1, 0)) %>%
  mutate(Other_party=ifelse(vote=="andere", 1, 0)) %>% #social class, p.350 Kriesi et al 2008
  mutate(educ_high=ifelse(education %in% c("Abitur bzw. erweiterte Oberschule mit Abschluss 12. Klasse (Hochschulreife)"),
                          1, 0)) %>% 
  mutate(educ_middle=ifelse(education %in% c("anderen Schulabschluss, und zwar",
                                             "Fachhochschulreife (Abschluss einer Fachoberschule etc.)",
                                             "Realschulabschluss, Mittlere Reife, Fachschulreife oder Abschluss der Polytechnischen Oberschule 10. Klasse"), 
                            1, 0)) %>% 
  mutate(educ_low=ifelse(education %in% c("Hauptschulabschluss, Volksschulabschluss, Abschluss der Polytechnischen Oberschule 8. oder 9. Klasse",
                                          "Schule beendet ohne Abschluss"), 
                         1, 0)) %>% 
  mutate(vacc_skeptic=ifelse(vacc_group==1, 1, 0)) %>% 
  mutate(vacc_enthus=ifelse(vacc_group==0, 1, 0)) %>% 
  mutate(covid_skeptic=ifelse(covid_group==1, 1, 0)) %>% 
  mutate(covid_enthus=ifelse(covid_group==0, 1, 0)) %>% 
  mutate(env_skeptic=ifelse(env_group==0, 1, 0)) %>% 
  mutate(env_enthus=ifelse(env_group==1, 1, 0)) %>% 
  mutate(class_unskilled=ifelse(occupation=="un- und angelernte/r Arbeiter/in", 1, 0)) %>% # only 34 if combined with verarbeitendes Gewerbe
  mutate(class_socio_cult=case_when(occupation == "Angestellte/r, die/der schwierige Aufgaben nach allgemeiner Anweisung selbststaendig erledigt" &
                                   (occwirt=="soziale Dienstleistungen (Pflege, Betreuung, Therapie etc.)" | occwirt=="Bildung, Forschung und Entwicklung") ~ 1,
                                    occupation == "Angestellte/r mit umfassenden Fuehrungsaufgaben und Entscheidungsbefugnissen" ~ 1,
                                   TRUE ~ 0)) %>% 
  select(starts_with("factor_"), starts_with("climate_"), 
         contains("_skeptic"), contains("_enthus"),
         starts_with("educ_"), AfD, Union, Linke, FDP,
         Gru, SPD, Other_party, non_voters, starts_with("class_"),
         year, weight) %>% 
  pivot_longer(cols=c(starts_with("climate_"),
                      starts_with("educ_"), AfD, Union, Linke, FDP,
                      Gru, SPD, Other_party, non_voters, contains("_skeptic"), 
                      contains("_enthus"), starts_with("class_")), names_to = "indic", values_to = "dummy") %>%
  group_by(year, indic) %>% 
  mutate(econ_pos=(sum(dummy*factor_econ*weight, na.rm=TRUE))/(sum(dummy*weight, na.rm = TRUE)),
         cult_pos=(sum(dummy*factor_cult*weight, na.rm=TRUE))/(sum(dummy*weight, na.rm = TRUE))) %>% 
  ungroup(.) %>% 
  select(year, indic, econ_pos, cult_pos) %>% 
  unique() %>% 
  mutate(type=case_when(grepl("climate", indic) ~ "Einstellung zum Klimawandel",
                        grepl("educ", indic) ~ "Bildung",
                        grepl("vacc_", indic) ~ "Impfgegnerschaft",
                        grepl("env_", indic) ~ "Klima und Umweltgruppen",
                        grepl("covid_", indic) ~ "Covid-Massnahmen",
                        grepl("class_", indic) ~ "Soziale Klasse",
                        indic %in% c("AfD", "Union", "Linke", "FDP",
                                     "Gru", "SPD", "Other_party", "non_voters") ~ "Wahlverhalten")) %>% 
  mutate(type=factor(type, levels = c("Bildung", "Soziale Klasse", "Wahlverhalten",
                                      "Einstellung zum Klimawandel", "Klima und Umweltgruppen", 
                                      "Einstellung zur Impfung", "Impfgegnerschaft",
                                      "Covid-Massnahmen"))) %>% 
  mutate_at(vars(econ_pos, cult_pos), ~ifelse(type=="Vaccine" & year %in% c(2013, 2017), NA, .)) %>% 
  mutate(indic=case_when(indic=="Gru" ~ "B90/Grünen",
                         indic=="Union" ~ "CDU/CSU",
                         indic=="Other_party" ~ "Andere Partei",
                         indic=="educ_high" ~ "Bildung: Hoch",
                         indic=="educ_middle" ~ "Bildung: Mittelstufe",
                         indic=="educ_low" ~ "Bildung: niedrig",
                         indic=="climate_high" ~ "Klimawandel: hoch",
                         indic=="climate_low" ~ "Klimawandel: niedrig",
                         indic=="vacc_skeptic" ~ "Impfskeptiker Unterstützer",
                         indic=="vacc_enthus" ~ "Impfskeptiker Gegner",
                         indic=="env_enthus" ~ "Umweltgruppen Unterstützer",
                         indic=="env_skeptic" ~ "Umweltgruppen Gegner",
                         indic=="covid_enthus" ~ "Covid-Massn. Unterstützer",
                         indic=="covid_skeptic" ~ "Covid-Massn. Gegner",
                         indic=="non_voters" ~ "Nichtwähler",
                         indic=="class_unskilled" ~ "Ungelernte Arbeiter",
                         indic=="class_socio_cult" ~ "Soziokulturelle Fachkräfte",
                         TRUE ~ indic)) %>% 
  arrange(type, indic) |> 
  na.omit()

dat_plot <- dat |> 
  filter(!(type %in% c("Einstellung zum Klimawandel", "Einstellung zur Impfung",
                     "Impfgegnerschaft")))

my.cols <- brewer.pal(5, "Set1")
my.cols[3] <- "#000000"
my.cols[4] <- "#4DAF4A"


ggplot(dat_plot, aes(x = econ_pos*(-1), y = cult_pos*(-1), 
                color = type, fill=type)) +
  facet_wrap(~year, nrow=2) +
  geom_vline(xintercept = 0, color="gray70") +
  geom_hline(yintercept = 0, color="gray70") +
  geom_text_repel(aes(label = indic), 
                  min.segment.length=999,
                  max.overlaps=20,
                  size=2.5) +
  geom_point(aes(shape=type)) +
  xlim(-1, 1) + ylim(-1, 1) +
  labs(x ="Wirtschaftlicher Faktor", y = "Kultureller Faktor") +
  scale_color_manual(values = my.cols) +
  scale_fill_manual(values = my.cols) +
  scale_shape_manual(values = c(21, 22, 23, 24, 25, 13)) +
  theme_minimal() +
  theme(panel.grid.minor = element_blank(),
        legend.position="bottom",
        legend.title = element_blank(),
        panel.background = element_rect(fill = "white",
                                        colour = "white"),
        plot.background = element_rect(fill = "white",
                                       colour = "white"),
        strip.background =element_rect(fill="white", color="white"),
        strip.text = element_text(face = "bold", size=12))

ggsave(filename = "f2_demand_positions.png",
       path=fig_path,
       scale=0.9,
       # width=7,
       # height=7,
       # dpi=300, 
       width = 210,
       height = 210,
       units = "mm")



```


# Figure 3

```{r, include = T, echo = T, message = F, warning=FALSE, fig.width=6.5, fig.height=10}

data <- read_dta(paste0(path, "Data/core_sentences/germany.dta"), encoding="latin1")

#Only actor-issue

de_data <- data %>% 
  mutate(issue_cat_string=as.character(as_factor(issue_cat))) %>%
  mutate(issue_cat=ifelse(issue_cat==8, 7, issue_cat)) |> 
  mutate(issue_cat_string=ifelse(issue_cat_string=="eurozone", "europe", issue_cat_string)) |> 
  select(year_election, party_id, party_name_short, issue_cat, issue_cat_string,
         issue_subcat, direction,  type_cs)  %>% 
  mutate(party_name_short=ifelse(party_name_short %in% c("CDU", "CSU"), "CDU/CSU", party_name_short)) %>% 
  arrange(year_election, party_id, issue_cat) %>%
  group_by(party_id) %>%
  filter(n() > 19) %>% # parties that have overall less than 20 obs are excluded, v few random cases.
  ungroup(.) %>%
  filter(!is.na(party_id)) %>% 
  filter(type_cs==1) %>% 
  filter(!(issue_cat %in% c(17, 18))) |> 
  mutate(direction=ifelse(issue_cat_string %in% c("immigration", 
                                                                    "covid"), 
                          as.numeric(direction)*(-1), 
                          as.numeric(direction)))
  
  # mutate(issue_cat_string=as.character(as_factor(issue_cat))) %>%
  # mutate(issue_cat=ifelse(issue_subcat==1502, 21, issue_cat)) %>%
  

#salience/Average of direction

de_data2 <- de_data %>%
  group_by(year_election) %>%
  mutate(totalobs_by_elect = n()) %>% 
  ungroup(.) %>%
  group_by(year_election, issue_cat) %>%
  mutate(totalobs_issue_elect = n()) %>% 
  ungroup(.) %>%
  group_by(year_election, party_id) %>%
  mutate(totalobsparty_election = n()) %>% 
  ungroup(.) %>%
  mutate(salience_party_elect=totalobsparty_election/totalobs_by_elect) %>%
  mutate(salienceissue_elect=totalobs_issue_elect/totalobs_by_elect) %>%
  group_by(year_election, party_id, issue_cat) %>%
  mutate(count_party_issue = n()) %>% 
  mutate(salienceissue_party_elect= count_party_issue/totalobs_issue_elect) %>%
  mutate(directionmean_issue= ifelse(count_party_issue>=3 & type_cs==1, 
                                     mean(direction), as.numeric(NA))) %>%
  ungroup(.) %>% 
  select(party_name_short, party_id, year_election, issue_cat, issue_cat_string, directionmean_issue,
         salienceissue_party_elect, count_party_issue, salienceissue_elect, salience_party_elect) %>%
  unique(.) 


table(de_data2$party_name_short, de_data2$year_election)

grid <- expand.grid(year_election=unique(de_data2$year_election),
                    party_name_short = unique(de_data2$party_name_short),
                    issue_cat = unique(de_data2$issue_cat))
                    
grid <- grid %>% 
  filter(!(party_name_short=="AfD" & year_election<2017)) %>% 
  filter(!(party_name_short=="B90/Gru" & year_election<1994)) %>% 
  filter(!(party_name_short=="Li/PDS" & year_election<1994))

table(grid$party_name_short, grid$year_election)

de_data2 <- left_join(grid, de_data2) %>% 
  group_by(year_election, party_name_short) %>% 
  fill(party_id, .direction="updown") %>% 
  fill(salience_party_elect, .direction="updown") %>%
  group_by(year_election, issue_cat) %>% 
  fill(salienceissue_elect, .direction = "updown") %>% 
  fill(issue_cat_string, .direction = "updown") |> 
  group_by(year_election, party_name_short, issue_cat) %>% 
  mutate(count_party_issue=ifelse(is.na(count_party_issue), as.numeric(0), count_party_issue)) %>% 
  mutate(salienceissue_party_elect=ifelse(is.na(salienceissue_party_elect), as.numeric(0), salienceissue_party_elect)) %>% 
  mutate(directionmean_issue=ifelse(is.na(directionmean_issue), as.numeric(0), directionmean_issue)) %>% 
  ungroup(.) %>% 
  mutate_at(vars(salienceissue_elect, salience_party_elect), ~ifelse(is.na(.), as.numeric(0), .))
  
de_data2 <- de_data2 %>% 
  mutate(dir_avg_issuepartys=salienceissue_party_elect*directionmean_issue) %>% 
  group_by(year_election, issue_cat) %>% 
  mutate(dir_avg_issue=sum(dir_avg_issuepartys, na.rm = TRUE)/sum(salienceissue_party_elect, na.rm=TRUE)) %>% 
  select(party_name_short, party_id, year_election, issue_cat, issue_cat_string,
         directionmean_issue, dir_avg_issue,
         salienceissue_party_elect, count_party_issue, salienceissue_elect, salience_party_elect) %>%
  unique() %>%
  mutate(diff_avg_issuepartys=(directionmean_issue-dir_avg_issue)^2*salienceissue_party_elect) %>% 
  mutate(polar_issue=sum(diff_avg_issuepartys, na.rm = TRUE)) %>% 
  ungroup(.) %>% 
  # group_by(year_election, party_id, issue_subcat) %>% 
  # mutate(count_party_subissue = n()) %>% 
  # mutate(directionmean_subissue= mean(direction)) %>%
  # ungroup(.) %>%
  select(year_election, party_id, party_name_short, issue_cat, issue_cat_string, directionmean_issue,
         count_party_issue, salienceissue_party_elect, salienceissue_elect, salience_party_elect, polar_issue) %>%
  mutate_at(vars(salienceissue_party_elect, salienceissue_elect, 
                 salience_party_elect, directionmean_issue, polar_issue), ~round(., digits = 7)) %>% 
  unique(.) %>%
  filter_at(vars(year_election, party_id, party_name_short, issue_cat), all_vars(!is.na(.)))

# polit_climate <- de_data2 |> 
#   filter(issue_cat==21 & year_election==2021) value: 0.006201785 0.0057872284


de_data2 <- de_data2 %>%
  mutate(party_name_short=factor(party_name_short, levels = c("CDU/CSU", "SPD", "FDP",
                                                              "B90/Gru", "Li/PDS", "AfD"))) %>% 
  mutate(issue_group=case_when(issue_cat_string %in% c("econ_lib",
                                                       "econ_ref",
                                                       "eurozone",
                                                       "welfare",
                                                       "infra_sports_media_cul",
                                                       "education") ~ "Economic",
                               issue_cat_string %in% c("cul_lib",
                                                       "defence",
                                                       "education",
                                                       "security",
                                                       "immigration",
                                                       "nationalism") ~ "Cultural",
                               issue_cat_string %in% c("pol_dem",
                                                       "region",
                                                       "europe",
                                                       "corruption") ~ "Political",
                               issue_cat_string %in% "environment" ~ "Environment",
                               issue_cat_string == "covid" ~ "Covid-19")) %>% 
  ungroup(.) %>% 
  mutate(issue_group=factor(issue_group, levels = c("Economic", "Cultural",
                                                    "Environment", "Political", 
                                                    "Covid-19"))) %>% 
  mutate(issue_cat_string=case_when(issue_cat_string=="econ_lib" ~ "Wirtschaftsliberalismus",
                                    issue_cat_string=="immigration" ~ "Anti-Einwanderung",
                                    issue_cat_string=="covid" ~ "Covid-19",
                                    issue_cat_string=="welfare" ~ "Wohlfahrt",
                                    issue_cat_string=="europe" ~ "Europa",
                                    issue_cat_string=="environment" ~ "Umwelt",
                                    TRUE ~ issue_cat_string)) %>% 
  filter(issue_cat_string %in% c("Wohlfahrt", "Wirtschaftsliberalismus", 
                                 "Anti-Einwanderung", "Europa", 
                                 "Umwelt", "Covid-19")) %>% 
  mutate(issue_cat_string=factor(issue_cat_string, levels=c("Wohlfahrt", "Wirtschaftsliberalismus", 
                                                            "Anti-Einwanderung", "Europa", 
                                                            "Umwelt", "Covid-19"))) %>% 
  mutate(issue_group2 = case_when(issue_cat_string %in% c("Wohlfahrt", "Wirtschaftsliberalismus") ~ "Wirtschaftliche Konflikte",
                                  issue_cat_string %in% c("Anti-Einwanderung", "Europa") ~ "Globalisierungskonflikte",
                                  issue_cat_string %in% c("Umwelt", "Covid-19") ~ "Risikokonflikte")) %>% 
  mutate(issue_group2=factor(issue_group2, levels=c("Wirtschaftliche Konflikte", "Globalisierungskonflikte",
                                                    "Risikokonflikte")))
#Figure, issue groups over time

Figure <- de_data2 %>%
  select(year_election, issue_cat_string, salienceissue_elect, polar_issue, issue_group2) %>%
  unique(.) %>% 
  mutate_at(vars(salienceissue_elect, polar_issue), ~ifelse(issue_cat_string=="Covid-19" & 
                                                              salienceissue_elect==0, 
                                    NA, .)) %>% 
  mutate(politicization=salienceissue_elect*polar_issue) %>% 
  mutate(var_size=ifelse(issue_cat_string=="Covid-19", 1, 0)) %>% 
  mutate(var_size=factor(var_size, levels = c(0, 1))) |> 
  select(-polar_issue) |> 
  pivot_longer(cols=c(salienceissue_elect, politicization), names_to = "type", values_to = "value") |> 
  mutate(type=case_when(type=="salienceissue_elect"~"Salienz", 
                        type=="politicization" ~ "Salienz X Polarisierung",
                        TRUE ~ "")) |> 
  mutate(type=factor(type, levels=c("Salienz", "Salienz X Polarisierung"))) |> 
  filter(type!="Salienz X Polarisierung")



my.cols <- brewer.pal(6, "Set1")
my.cols[6] <- "#000000"
my.cols[3] <- "#FF7F00"
my.cols[5] <- "#4DAF4A"

election_dates <- unique(de_data2$year_election)

ggplot(Figure, aes(x = year_election, y = value, 
                   linetype=issue_cat_string, color=issue_cat_string, 
                   shape=issue_cat_string, fill=issue_cat_string)) +
  geom_line() +
  geom_point(aes(size=var_size)) + 
  labs(y = "Nominalwert") +
  expand_limits(y = 0) +
  facet_grid(type~issue_group2, scales = "free_y") +
  scale_x_continuous(breaks = election_dates) +
  theme_bw() +
  scale_color_manual(values = my.cols) +
  scale_fill_manual(values = my.cols) +
  scale_shape_manual(values = c(21, 22, 23, 24, 25, 13)) +
  scale_size_manual(values=c(1.5, 3.5)) +
  guides(fill=guide_legend(nrow=2,byrow=TRUE),
         color=guide_legend(nrow=2,byrow=TRUE),
         shape=guide_legend(nrow=2,byrow=TRUE),
         size = "none") +
  theme(legend.position="bottom",
        legend.title=element_blank(),
        axis.title.x = element_blank(),
        legend.key.width = unit(2, "cm"),
        axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1),
        panel.grid.minor = element_blank())

ggsave(filename = "f3_salience_by_election.png",
       path=fig_path,
       scale=1.15,
       width=6,
       height=3,
       dpi=400)

```

# Figure 4

```{r, include = T, echo = T, message = F, warning=FALSE, fig.width=6.5, fig.height=10}

proba <- de_data |> 
  filter(party_name_short=="CDU/CSU" & year_election==2021) 

de_data2 <- de_data %>%
  mutate(issue_cat=ifelse(issue_subcat==1502, 21, issue_cat)) %>% 
  mutate(issue_cat_string=ifelse(issue_cat_string=="eurozone", "europe", issue_cat_string)) |> 
  filter(year_election==2021) %>% 
  group_by(year_election) %>%
  mutate(totalobs_by_elect = n()) %>% 
  ungroup(.) %>%
  group_by(year_election, issue_cat) %>%
  mutate(totalobs_issue_elect = n()) %>% 
  ungroup(.) %>%
  group_by(year_election, party_id) %>%
  mutate(totalobsparty_election = n()) %>% 
  ungroup(.) %>%
  mutate(salience_party_elect=totalobsparty_election/totalobs_by_elect) %>%
  mutate(salienceissue_elect=totalobs_issue_elect/totalobs_by_elect) %>%
  group_by(year_election, party_id, issue_cat) %>%
  mutate(count_party_issue = n()) %>% 
  mutate(salienceissue_party_elect= count_party_issue/totalobsparty_election) %>%
  mutate(directionmean_issue= ifelse(count_party_issue>=4 & type_cs==1, 
                                     mean(direction, na.rm = TRUE), as.numeric(NA))) %>%
  ungroup(.) %>% 
  select(party_name_short, party_id, year_election, issue_cat, issue_cat_string, directionmean_issue,
         salienceissue_party_elect, count_party_issue, salienceissue_elect, salience_party_elect) %>%
  unique() 


table(de_data2$party_name_short, de_data2$year_election)

grid <- expand.grid(year_election=unique(de_data2$year_election),
                    party_name_short = unique(de_data2$party_name_short),
                    issue_cat = unique(de_data2$issue_cat))

grid <- grid %>% 
  filter(!(party_name_short=="AfD" & year_election<2017)) %>% 
  filter(!(party_name_short=="B90/Gru" & year_election<1994)) %>% 
  filter(!(party_name_short=="Li/PDS" & year_election<1994))

table(grid$party_name_short, grid$year_election)

de_data2 <- left_join(grid, de_data2) %>% 
  group_by(year_election, party_name_short) %>% 
  fill(party_id, .direction="updown") %>% 
  fill(salience_party_elect, .direction="updown") %>%
  group_by(year_election, issue_cat) %>% 
  fill(issue_cat_string, .direction = "updown") %>% 
  fill(salienceissue_elect, .direction = "updown") %>% 
  group_by(year_election, party_name_short, issue_cat) %>% 
  mutate(count_party_issue=ifelse(is.na(count_party_issue), as.numeric(0), count_party_issue)) %>% 
  mutate(salienceissue_party_elect=ifelse(is.na(salienceissue_party_elect), as.numeric(0), salienceissue_party_elect)) %>% 
  # mutate(directionmean_issue=ifelse(is.na(directionmean_issue), as.numeric(0), directionmean_issue)) %>% 
  ungroup(.) %>% 
  mutate_at(vars(salienceissue_elect, salience_party_elect), ~ifelse(is.na(.), as.numeric(0), .))

de_data2 <- de_data2 %>% 
  mutate(dir_avg_issuepartys=salienceissue_party_elect*directionmean_issue) %>% 
  group_by(year_election, issue_cat) %>% 
  mutate(dir_avg_issue=sum(dir_avg_issuepartys, na.rm = TRUE)/sum(salienceissue_party_elect, na.rm=TRUE)) %>% 
  select(party_name_short, party_id, year_election, issue_cat, issue_cat_string,
         directionmean_issue, dir_avg_issue, salienceissue_party_elect, 
         count_party_issue, salienceissue_elect, salience_party_elect) %>%
  unique() %>%
  mutate(diff_avg_issuepartys=(directionmean_issue-dir_avg_issue)^2*salienceissue_party_elect) %>% 
  mutate(polar_issue=sum(diff_avg_issuepartys, na.rm = TRUE)) %>% 
  ungroup(.) %>% 
  # group_by(year_election, party_id, issue_subcat) %>% 
  # mutate(count_party_subissue = n()) %>% 
  # mutate(directionmean_subissue= mean(direction)) %>%
  # ungroup(.) %>%
  select(year_election, party_id, party_name_short, issue_cat, issue_cat_string, directionmean_issue,
         count_party_issue, salienceissue_party_elect, salienceissue_elect, salience_party_elect, polar_issue) %>%
  mutate_at(vars(salienceissue_party_elect, salienceissue_elect, 
                 salience_party_elect, directionmean_issue, polar_issue), ~round(., digits = 7)) %>% 
  unique(.) %>%
  filter_at(vars(year_election, party_id, party_name_short, issue_cat), all_vars(!is.na(.)))


de_data2 <- de_data2 %>%
  mutate(party_name_short=ifelse(party_name_short=="Li/PDS", "Linke", 
                                 party_name_short)) %>% 
  mutate(party_name_short=ifelse(party_name_short=="B90/Gru", "B90/Grünen", 
                                 party_name_short)) %>% 
  mutate(party_name_short=factor(party_name_short, levels = c("CDU/CSU", "SPD", "FDP",
                                                              "B90/Grünen", "Linke", "AfD"))) %>% 
  mutate(issue_group=case_when(issue_cat_string %in% c("econ_lib",
                                                       "econ_ref",
                                                       "eurozone",
                                                       "welfare",
                                                       "infra_sports_media_cul",
                                                       "education") ~ "Economic",
                               issue_cat_string %in% c("cul_lib",
                                                       "defence",
                                                       "education",
                                                       "security",
                                                       "immigration",
                                                       "nationalism") ~ "Cultural",
                               issue_cat_string %in% c("pol_dem",
                                                       "region",
                                                       "europe",
                                                       "corruption") ~ "Political",
                               issue_cat_string == "environment" ~ "Environment",
                               issue_cat_string == "covid" ~ "Covid-19")) %>% 
  ungroup(.) %>% 
  mutate(issue_group=factor(issue_group, levels = c("Economic", "Cultural",
                                                    "Environment", "Political", 
                                                    "Covid-19"))) %>% 
  mutate(issue_cat_string=case_when(issue_cat_string=="econ_lib" ~ "Wirtschaftsliberalismus",
                                    issue_cat_string=="immigration" ~ "Anti-Einwanderung",
                                    issue_cat_string=="covid" ~ "Anti-Covid-Massnahmen",
                                    issue_cat_string=="welfare" ~ "Wohlfahrt",
                                    issue_cat_string=="europe" ~ "Europa",
                                    issue_cat==21 ~ "Klimawandel",
                                    issue_cat_string == "environment" ~ "Umwelt",
                                    TRUE ~ issue_cat_string)) %>% 
  filter(issue_cat_string %in% c("Wohlfahrt", "Wirtschaftsliberalismus", 
                                 "Anti-Einwanderung", "Europa", 
                                 "Umwelt", "Klimawandel", "Anti-Covid-Massnahmen")) %>% 
  mutate(issue_cat_string=factor(issue_cat_string, levels=c("Wohlfahrt", "Wirtschaftsliberalismus", 
                                                            "Anti-Einwanderung", "Europa", "Klimawandel",
                                                            "Umwelt", "Anti-Covid-Massnahmen"))) %>% 
  mutate(issue_group2 = case_when(issue_cat_string %in% c("Wohlfahrt", "Wirtschaftsliberalismus") ~ "Wirtschaftliche Konflikte",
                                  issue_cat_string %in% c("Anti-Einwanderung", "Europa") ~ "Globalisierungskonflikte",
                                  issue_cat_string %in% c("Umwelt", "Anti-Covid-Massnahmen", "Klimawandel") ~ "Risikokonflikte")) %>% 
  mutate(issue_group2=factor(issue_group2, levels=c("Wirtschaftliche Konflikte", "Globalisierungskonflikte",
                                                    "Risikokonflikte")))

#Polarization of Environment Issue

# if climate change alone, then: 0.1134439*0.0546683=0.006201785

Figure <- de_data2 %>%
  select(directionmean_issue, party_name_short, salienceissue_party_elect, issue_cat_string) %>%
  unique(.) %>% 
  drop_na()

ggplot(Figure, aes(y = party_name_short, 
                    x = directionmean_issue,
                    size=salienceissue_party_elect)) +
  geom_vline(xintercept = 0, linetype = "dashed", color="gray70") +
  geom_point() +
  facet_wrap(~issue_cat_string) +
  # geom_line() +
  labs(x = "Durchschnittliche Position") + 
  expand_limits(x = c(-1, 1)) +
  guides(size=guide_legend(title="Salienz im Wahlkampf der Parteien:")) +
  scale_y_discrete(limits=rev) +
  scale_size_binned(range=c(0.3, 2.5),
                    breaks=c(0.05, 0.1, 0.15, 0.2, 0.25)) +
  theme_bw() +
  theme(legend.position="bottom",
        axis.title.y = element_blank())

ggsave(filename = "f4_pos_by_party_2021.png",
       path=fig_path,
       scale=1.2,
       width=6,
       height=4,
       dpi=300)

```

# Figure 5

```{r, include = T, echo = T, message = F, warning=FALSE, fig.width=6.5, fig.height=10}

data <- read_dta(paste0(path, "Data/core_sentences/germany.dta"), encoding="latin1")

#Only actor-issue

de_data <- data %>% 
  mutate(issue_cat_string=as.character(as_factor(issue_cat))) %>%
  # mutate(issue_cat=ifelse(issue_cat==8, 7, issue_cat)) |> 
  # mutate(issue_cat_string=ifelse(issue_cat_string=="eurozone", "europe", issue_cat_string)) |> 
  select(year_election, party_id, party_name_short, issue_cat, issue_cat_string,
         issue_subcat, direction,  type_cs)  %>% 
  mutate(party_name_short=ifelse(party_name_short %in% c("CDU", "CSU"), "CDU/CSU", party_name_short)) %>% 
  arrange(year_election, party_id, issue_cat) %>%
  group_by(party_id) %>%
  filter(n() > 19) %>% # parties that have overall less than 20 obs are excluded, v few random cases.
  ungroup(.) %>%
  filter(!is.na(party_id)) %>% 
  filter(type_cs==1) %>% 
  filter(!(issue_cat %in% c(17, 18))) %>% 
  # mutate(issue_cat_string=as.character(as_factor(issue_cat))) %>%
  # mutate(issue_cat=ifelse(issue_subcat==1502, 21, issue_cat)) %>%
  mutate(direction=ifelse(as.character(as_factor(issue_cat)) %in% c("immigration", 
                                                                    "covid"), 
                          as.numeric(direction)*(-1), 
                          as.numeric(direction)))


MDS_dat <- de_data %>%
  # filter(year_election==2021) %>%
  filter_at(vars(year_election, party_name_short, 
                 issue_cat, direction, type_cs), all_vars(!is.na(.))) %>% 
  mutate_at(vars(issue_cat, type_cs, 
                 party_name_short, issue_subcat), ~as.character(as_factor(.))) %>%
  filter(party_name_short!="") %>% 
  filter(issue_cat!="") %>%
  filter(type_cs == "actor-issue") %>% 
  group_by(year_election, issue_cat) %>%
  filter(n() > 20) %>%
  ungroup(.) %>% 
  filter(!(issue_cat %in% c("campaign_pol",
                          "not attachable", "not_att"))) %>% 
  mutate(issue_cat=case_when(issue_cat=="immigration" ~ "anti-immig",
                             issue_cat=="infra_sports_media_cul" ~ "infra",
                             issue_subcat=="climate change/sustainability" & 
                             year_election %in% c(2013, 2017, 2021) ~ "climate_ch",
                             issue_cat=="education" ~ "educ",
                             issue_cat=="environment" ~ "environ",
                             TRUE ~ issue_cat)) %>% 
  select(party_name_short, issue_cat, direction, year_election)
  
MDS_dat2 <- as.data.frame(subset(MDS_dat, year_election==2021))

list_issues <- unique(MDS_dat2$issue_cat)

# # choose the actor-issue sentences

dataset_mds <- pd_mdsmat(data = MDS_dat2,
                         party_var = "party_name_short",
                         issue_var = "issue_cat",
                         proximity_var = "direction",
                         year_var = "year_election",
                         cell = TRUE,
                         min = 10,
                         imin = 2)

dataset_dist <- pd_pscale(mdsmat = dataset_mds, ndim = 2)

dataset_coord <- pd_rescale(mdsmat = dataset_mds,
                            distmat = dataset_dist,
                            n_issues = length(unique(MDS_dat2$issue_cat))-1, #needs to be corrected with the 
                            n_years = 1) #number of issues. Count them using dataset_dist$coord

dataset_coord <- pd_mdsrot(rescalemat = dataset_coord,
                           WF = "welfare",
                           EL = "econ_lib")

my_labs <- c(rownames(dataset_coord))

dataset_coord$label <- rownames(dataset_coord)

dataset_coord$type <- as.factor(ifelse(dataset_coord$label %in% list_issues, 1, 0))

dataset_coord <- subset(dataset_coord, dataset_coord$label != "")

dataset_coord <- dataset_coord %>% 
  mutate(dimensions=case_when(
    label %in% c("welfare", "econ_lib") ~ "horizontal",
    label %in% c("cul_lib", "anti-immig") ~ "vertical",
    label %in% c("climate_ch", "covid") ~ "alt_vertical",
    TRUE ~ as.character(NA))) %>% 
  mutate(D2=D2*-1)

MDS2021 <- dataset_coord

MDS2021$year_election <- 2021 

# all of 2010s

MDS_dat2 <- as.data.frame(subset(MDS_dat, year_election>=2010 & year_election<2020))

list_issues <- unique(MDS_dat2$issue_cat)

MDS_dat2$year_election <- 2010

# # choose the actor-issue sentences

dataset_mds <- pd_mdsmat(data = MDS_dat2,
                         party_var = "party_name_short",
                         issue_var = "issue_cat",
                         proximity_var = "direction",
                         year_var = "year_election",
                         cell = TRUE,
                         min = 10,
                         imin = 2)

dataset_dist <- pd_pscale(mdsmat = dataset_mds, ndim = 2)

dataset_coord <- pd_rescale(mdsmat = dataset_mds,
                            distmat = dataset_dist,
                            n_issues = length(unique(MDS_dat2$issue_cat))-1, #needs to be corrected with the 
                            n_years = 1) #number of issues. Count them using dataset_dist$coord

dataset_coord <- pd_mdsrot(rescalemat = dataset_coord,
                           WF = "welfare",
                           EL = "econ_lib")

my_labs <- c(rownames(dataset_coord))

dataset_coord$label <- rownames(dataset_coord)

dataset_coord$type <- as.factor(ifelse(dataset_coord$label %in% list_issues, 1, 0))

dataset_coord <- subset(dataset_coord, dataset_coord$label != "")

# rownames(dataset_coord)[rownames(dataset_coord) == "immigration"] <- "anti-immig"
# rownames(dataset_coord)[rownames(dataset_coord) == "infra_sports_media_cul"] <- "infra"

dataset_coord <- dataset_coord %>% 
  mutate(dimensions=case_when(
    label %in% c("welfare", "econ_lib") ~ "horizontal",
    label %in% c("cul_lib", "anti-immig") ~ "vertical",
    TRUE ~ as.character(NA)))

MDS2010 <- dataset_coord
MDS2010$year_election <- 2010

# all of 2000s

MDS_dat2 <- as.data.frame(subset(MDS_dat, year_election>=2000 & year_election<2010))

list_issues <- unique(MDS_dat2$issue_cat)

MDS_dat2$year_election <- 2000

# # choose the actor-issue sentences

dataset_mds <- pd_mdsmat(data = MDS_dat2,
                         party_var = "party_name_short",
                         issue_var = "issue_cat",
                         proximity_var = "direction",
                         year_var = "year_election",
                         cell = TRUE,
                         min = 10,
                         imin = 2)

dataset_dist <- pd_pscale(mdsmat = dataset_mds, ndim = 2)

dataset_coord <- pd_rescale(mdsmat = dataset_mds,
                            distmat = dataset_dist,
                            n_issues = length(unique(MDS_dat2$issue_cat))-2, #needs to be corrected with the 
                            n_years = 1) #number of issues. Count them using dataset_dist$coord

dataset_coord <- pd_mdsrot(rescalemat = dataset_coord,
                           WF = "welfare",
                           EL = "econ_lib")

my_labs <- c(rownames(dataset_coord))

dataset_coord$label <- rownames(dataset_coord)

dataset_coord$type <- as.factor(ifelse(dataset_coord$label %in% list_issues, 1, 0))

dataset_coord <- subset(dataset_coord, dataset_coord$label != "")

# rownames(dataset_coord)[rownames(dataset_coord) == "immigration"] <- "anti-immig"
# rownames(dataset_coord)[rownames(dataset_coord) == "infra_sports_media_cul"] <- "infra"

dataset_coord <- dataset_coord %>% 
  mutate(dimensions=case_when(
    label %in% c("welfare", "econ_lib") ~ "horizontal",
    label %in% c("cul_lib", "anti-immig") ~ "vertical",
    TRUE ~ as.character(NA))) %>% 
  mutate(D2=D2*(-1))

MDS2000 <- dataset_coord
MDS2000$year_election <- 2000

# all of 1990s

MDS_dat2 <- as.data.frame(subset(MDS_dat, year_election>=1990 & year_election<2000))
MDS_dat2$issue_cat[MDS_dat2$issue_cat=="climate_ch"] <- "environ" # too few obs for climate_ch

list_issues <- unique(MDS_dat2$issue_cat)

MDS_dat2$year_election <- 1990

# # choose the actor-issue sentences

dataset_mds <- pd_mdsmat(data = MDS_dat2,
                         party_var = "party_name_short",
                         issue_var = "issue_cat",
                         proximity_var = "direction",
                         year_var = "year_election",
                         cell = TRUE,
                         min = 10,
                         imin = 2)

dataset_dist <- pd_pscale(mdsmat = dataset_mds, ndim = 2)

dataset_coord <- pd_rescale(mdsmat = dataset_mds,
                            distmat = dataset_dist,
                            n_issues = length(unique(MDS_dat2$issue_cat)), #needs to be corrected with the 
                            n_years = 1) #number of issues. Count them using dataset_dist$coord

dataset_coord <- pd_mdsrot(rescalemat = dataset_coord,
                           WF = "welfare",
                           EL = "econ_lib")

my_labs <- c(rownames(dataset_coord))

dataset_coord$label <- rownames(dataset_coord)

dataset_coord$type <- as.factor(ifelse(dataset_coord$label %in% list_issues, 1, 0))

dataset_coord <- subset(dataset_coord, dataset_coord$label != "")

# rownames(dataset_coord)[rownames(dataset_coord) == "immigration"] <- "anti-immig"
# rownames(dataset_coord)[rownames(dataset_coord) == "infra_sports_media_cul"] <- "infra"

dataset_coord <- dataset_coord %>%
  mutate(dimensions=case_when(
    label %in% c("welfare", "econ_lib") ~ "horizontal",
    label %in% c("cul_lib", "anti-immig") ~ "vertical",
    TRUE ~ as.character(NA))) %>% 
  mutate(D2=D2*-1)


MDS1990 <- dataset_coord
MDS1990$year_election <- 1990

# All together

MDS_res <- bind_rows(MDS1990, MDS2000, MDS2010, MDS2021)

MDS_res <- MDS_res %>% 
  mutate(year_election=case_when(year_election == 1990 ~ "1990s",
                                 year_election == 2000 ~ "2000s",
                                 year_election == 2010 ~ "2010s",
                                 year_election == 2021 ~ "2021")) %>% 
  mutate(year_election=factor(year_election, levels=c("1990s", "2000s",
                                                      "2010s", "2021"))) |> 
  mutate(label=case_when(label=="B90/Gru" ~ "Grünen",
                         label=="anti-immig" ~ "Anti-Einwan", 
                         label=="cul_lib" ~ "KultLib", 
                         label=="defence" ~ "Verteidigung", 
                         label=="econ_lib" ~ "WirtLib", 
                         label=="econ_ref" ~ "WirtReform", 
                         label=="educ" ~ "Bildung", 
                         label=="environ" ~ "Umwelt", 
                         label=="europe" ~ "Europa", 
                         label=="infra" ~ "Infrast", 
                         label=="pol_dem" ~ "Pol/Demok", 
                         label=="security" ~ "Sicherheit", 
                         label=="welfare" ~ "Wohlfahrt", 
                         label=="eurozone" ~ "Eurozone", 
                         label=="climate_ch" ~ "Klimawandel",
                         label=="covid" ~ "Covid-19",
                         TRUE ~ label))

data.segm<-data.frame(x=min(MDS_res$D1, na.rm = TRUE),
                      xend=min(MDS_res$D1, na.rm = TRUE) + 0.5,
                      y=min(MDS_res$D2, na.rm = TRUE),
                      yend=min(MDS_res$D2, na.rm = TRUE),
                      year_election="2010s")

data.segm2<-data.frame(x=min(MDS_res$D1, na.rm = TRUE),
                       xend=min(MDS_res$D1, na.rm = TRUE),
                       y=min(MDS_res$D2, na.rm = TRUE),
                       yend=min(MDS_res$D2, na.rm = TRUE) + 0.5,
                       year_election="2010s")

data.text.horizontal <- data.frame(x = min(MDS_res$D1, na.rm = TRUE)+0.5, 
                                   y = min(MDS_res$D2, na.rm = TRUE)-0.07, 
                                   label=".5",
                                   year_election="2010s")

data.text.vertical <- data.frame(x = min(MDS_res$D1, na.rm = TRUE)-0.07, 
                                 y = min(MDS_res$D2, na.rm = TRUE)+0.5, 
                                 label=".5",
                                 year_election="2010s")

data.text0<-data.frame(x = min(MDS_res$D1, na.rm = TRUE)-0.07, 
                       y = min(MDS_res$D2, na.rm = TRUE)-0.07, 
                       label="0",
                       year_election="2010s")


ggplot(MDS_res, aes(x = D1, y = D2, shape = type, color = type)) +
  facet_wrap(~year_election, nrow=2) +
  geom_line(data=MDS_res[!is.na(MDS_res$dimensions),], 
            aes(group=dimensions, linetype=dimensions), color="gray60") +
  geom_text_repel(aes(label = label, 
                      fontface=ifelse(type==1, 1, 2),
                      size=type), 
                  min.segment.length=999,
                  max.overlaps=20) +
  geom_point() +
  scale_color_manual(values=c("black", "gray20")) +
  scale_size_manual(values=c(3.5, 3.2)) +
  scale_linetype_manual(values=c("dashed", "solid", "solid")) +
  scale_x_continuous(breaks = seq(-2, 1, 0.5)) +
  # xlim(-1.5, 1) + ylim(-1.4, 1.1) +
  geom_errorbarh(data=data.segm, 
                 aes(xmin=x, xmax=xend, y=y), height=0.05,
                 colour = "black", inherit.aes=FALSE) +
  geom_errorbar(data=data.segm2,
                aes(x=x,ymin=y,ymax=yend), width=0.05,
                colour = "black", inherit.aes=FALSE) +
  geom_text(data=data.text0, aes(x=x, y=y, label=label), 
            colour = "black", inherit.aes=FALSE) +
  geom_text(data=data.text.vertical, aes(x=x, y=y, label=label), 
            colour = "black", inherit.aes=FALSE) +
  geom_text(data=data.text.horizontal, aes(x=x, y=y, label=label), 
            colour = "black", inherit.aes=FALSE) +
  theme_classic() +
  theme(legend.position = "none",
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        plot.background = element_rect(fill = "white",
                                       colour = "white"),
        strip.background =element_rect(fill="white", color="white"),
        axis.line = element_blank(),
        axis.text = element_blank(),
        axis.title = element_blank(),
        axis.ticks = element_blank(),
        strip.text = element_text(face = "bold", size=12))

ggsave(filename = "f5_MDS_decades.png",
       path=fig_path,
       scale=0.9,
       # width=7,
       # height=7,
       # dpi=300,
       width = 230, 
       height = 270, 
       units = "mm")

```



```{r, include = T, echo = F, message = F}



```